Ejemplo de pilas:
Realiza la declaración de la pila
Agrega elementos a la pila
Imprime la pila
CODIGO:
/*PROGRAMA : PILA1.CPP.- PROGRAMA QUE FORMULA Y OPERA UNA PILA */ #include#include #include struct pilaNodo { int dato; struct pilaNodo *sigPtr; }; typedef struct pilaNodo PILANODO; typedef PILANODO *PILANODOPTR; void push(PILANODOPTR *, int); int pop(PILANODOPTR *); int vacio(PILANODOPTR); void print_pila(PILANODOPTR); void pausa(void); main() { PILANODOPTR pilaPtr = NULL; int opcion = 0, value, digito; while (opcion != 4) { printf("%s\n%s\n%s\n%s\n%s\n", " ELIGE ALGUNA DE LAS SIGUIENTES OPCIONES :", " 1. REALIZA UN PUSH A LA PILA", " 2. REALIZA UN POP A LA PILA", " 3. Realiza la multiplicacion por 2", " 4. FIN DE PROGRAMA"); printf("? "); scanf("%d",&opcion); switch (opcion) { case 1: printf(" TECLEA UN DIGITO : "); scanf( "%d",&value); push(&pilaPtr,value); print_pila(pilaPtr); pausa(); break; case 2: if (!vacio(pilaPtr)) printf(" EL DATO(DIGITO) EXTRAIDO ES %d.\n",pop(&pilaPtr)); print_pila(pilaPtr); pausa(); break; case 3: if (!vacio(pilaPtr)) { digito = pop(&pilaPtr); printf(" EL Digito EXTRAIDO ES %d.\n", digito); digito = 2 * digito; printf(" EL producto de digito * 2 es : %d.\n", digito); } printf("\n La pila queda:"); print_pila(pilaPtr); pausa(); break; } } printf("< FIN DE LA CORRIDA >"); return(0); } void pausa(void) { printf("\n Pulsar cualquier tecla para continuar ..:"); getch(); } void push(PILANODOPTR *topptr, int info) { PILANODOPTR nuevoPtr; nuevoPtr = (struct pilaNodo *) malloc(sizeof(PILANODO)); if (nuevoPtr) { nuevoPtr->dato = info; nuevoPtr->sigPtr = *topptr; *topptr = nuevoPtr; } else printf("%d NO PUDE INSERTARSE, NO HAY MEMORIA DISPONIBLE\n", info); } int pop(PILANODOPTR *topptr) { PILANODOPTR tempptr; int popvalue; tempptr = *topptr; popvalue = (*topptr)->dato; *topptr = (*topptr)->sigPtr; free(tempptr); return popvalue; } int vacio(PILANODOPTR topptr) { return !topptr; } void print_pila(PILANODOPTR currentptr) { if (currentptr == NULL) printf(" LA PILA SE ENCUENTRA VACIA.\n\n"); else { printf(" EN LA PILA SE ENCUENTRA :\n"); while (currentptr != NULL) { printf("%d --> ", currentptr->dato); currentptr = currentptr->sigPtr; } printf(" NO EXISTE NADA\n\n"); } }
0 comentarios:
Publicar un comentario