main() { Pila dada,top,aux; int g=0; inicpila(&dada); inicpila(&top); inicpila(&aux); while (g<5) { leer(&dada); g++; } apilar(&top, desapilar(&dada)); while (!pilavacia(&dada)) { apilar(&aux, desapilar(&dada)); } apilar(&dada, desapilar(&top)); while (!pilavacia(&aux)) { apilar(&dada, desapilar(&aux)); } mostrar(&dada); getch(); return(0); }
char head(){ if (pilavacia()){ printf("head: Pila vacia"); exit(0); } else return pila[pp]; }
char pop(){ if (pilavacia()){ printf("pop: Pila vacia"); exit(0); } char c = pila[pp]; pp--; return c; }
/* programa principal */ int main (void){ /* Carga la pila hasta que se llene o ingrese un cero */ printf("ingrese un número distinto a 0: "); scanf("%d",&dato); while(dato!=0 && !pilallena()){ apilar(); printf("ingrese un número distinto a 0: "); scanf("%d",&dato); } /* Muestra la pila, perdiendo todos los */ /* elementos que estaban cargados en ella */ printf("Datos cargados en la pila\n"); while(!pilavacia()) { printf("%d\n", primeropila()); desapilar(); } printf("Fin de datos\n"); return 0; }
void mostrar(struct Pila p) { int Limite=p.posTope; int j; if (pilavacia(p)) exit(1); printf("\n"); for (j=0; j<Limite+1; j++) { printf("- - -"); } printf("\n"); for (j=0; j<Limite+1; j++) { printf("| %d |",p.valores[j]); } printf("\n"); for (j=0; j<Limite+1; j++) { printf("- - -"); } printf("\n"); }