Piles

Pila

    estructura pila{
        enter cim;
        enter valors[100];
    }P;

Buidar

    buidar(&P)

    acció buidar(estructura pila *P)
        var enter i; fvar
        per(i<-0;i<-P->cim;i++){
            P->valors[i]<-NUL;
        }
        P->cim<-0;
    facció

Empilar, Posar un valor a la pila

    empilar(valor, &P);

    acció empilar(enter valor, estructura pila *P)
        P->valors[P->cim]<-valor;
        P->cim++;
    facció

DesEmpilar , treure un valor de la pila

    escriure(desempilar(&P));

    enter desempilar (estructura pila *P)
        var enter num; fvar
        num<-P->valors[P->cim-1];
        P->valors[P->cim-1]<-NUL;
        P->cim--;
        retorna num
    facció

    o

    si(P->cim=0) aleshores
        escriure("pila buida");
        retorna NUL;
    sino
    valor<-(p->valor[p->cim-1]);
    (p->valor[p->cim-1])<-NUL
    p->cim--;

Cim , torna el valor del element del cim

    escriure(cim(&P));

    enter cim (estructura pila *P)
        return(P->valors[P->cim-1]);
    ffunció

Buida? , indica si la pila = buida

    escriure(buida(&P));

    bool buida (estructura pila *P)
        var enter i; fvar
        si(P->cim = 0) retorna FALSE;
        per(i<-0;i<-P->cim;i++)
            si(P->valors[i]!=NUL)
                retorna FALSE;
            fsi
        fper
        retorna TRUE;
    ffunció

Ple?, indica si la pila = plena

    escriure(ple(&P));

    bool ple(estructura pila *P)
        var enter i;fvar
        per(i<-0;i<-P->cim;i++)
            si(P->valors[i]==NUL)
                retorn FALSE;
            fsi
        fper
        retorna TRUE;
    ffunció

last updated on April 11, 2015, 7:42 p.m.
Back