Hola, necesito ayuda para terminar un ejercicio que tengo que hacer, os pago lo que tengo hecho:
los includes y define:
Código:#include <stdio.h> #include <stdlib.h> #define STAY 1 // se queda en el menu #define EXIT 0 // sale del menu, opcion exit
declaro la estructura tPila:
Código:struct tpila { int clave; struct tpila *sig; };
luego las funciones (void) y el menu (int):
Código:int menu() { int i; clrscr(); printf("\n\n\t\t\t <>------------------------------<>"); printf("\n\t\t\t * Probando Funciones de Pila *"); printf("\n\t\t\t <>------------------------------<>"); printf("\n\n\n\t 1 Insertar Elemento"); printf("\n\t 2 Ver tope"); printf("\n\t 3 Eliminar tope"); printf("\n\t 4 Vaciar Pila"); printf("\n\t 5 Visualizar Pila"); printf("\n\t 6 Exit -->"); do { printf("\n\n\n\t >-----------------<"); printf("\n\n\n\t Elige una opcion:\n "); printf("\n\t ---> "); scanf("%d",&i); } while(i<0 || i > 6); return(i); } void crear(struct tpila **pila); int vacia(struct tpila *pila); void apilar(struct tpila *pila, int elem); void desapilar(struct tpila *pila, int *elem); void crear(struct tpila **pila) { *pila = (struct tpila *) malloc(sizeof(struct tpila)); (*pila)->sig = NULL; } void apilar(struct tpila *pila, int elem) { struct tpila *nuevo; nuevo = (struct tpila *) malloc(sizeof(struct tpila)); nuevo->clave = elem; nuevo->sig = pila->sig; pila->sig = nuevo; } void desapilar(struct tpila *pila, int *elem) { struct tpila *aux; aux = pila->sig; *elem = aux->clave; pila->sig = aux->sig; free(aux); } int vacia(struct tpila *pila) { return (pila->sig == NULL); }
y por ultimo el main():
Código:main() { int fin; struct pila *pila; int elem; crear(&pila); for(fin=STAY; fin;) { switch(menu()) { case 1: clrscr(); crear(&pila); break; case 2: clrscr(); if (vacia(pila)) { printf("\n\t Pila vacia!"); printf("\n\t "); system("pause"); } else apilar(pila, 1); printf(apilar); break; case 3: clrscr(); if (vacia(pila)) { printf("\n\t Pila vacia!"); printf("\n\t "); system("pause"); } else{ desapilar(pila, &elem); printf("\n\t "); system("pause"); } break; case 4: clrscr(); if (vacia(pila)) { printf("\n\t Pila vacia!"); printf("\n\t "); system("pause"); } else{ free(pila); printf("\n\t "); system("pause"); } break; case 5: clrscr(); if (vacia(pila)) { printf("\n\t Pila vacia!"); printf("\n\t "); system("pause"); } else {} break; case 6: fin=EXIT; break; } } }
haber si sabeis decirme que hago mal, porque quiero que el programa me haga lo que dice el menu (int menu) pero de momento lo unico que va al 100% es el exit...hehehe
gracias!
salu2
dew![]()



hehehe
Citar