miércoles, 11 de enero de 2012

Ejercicio Pilas

Código fuente






#include < stdlib . h >






#include < stdio . h >






#include < conio . h >






#include < windows . h >






struct pilanodo





{





int dato;





struct pilanodo *sig;





};





typedef struct pilanodo PILA;





typedef PILA *PILAPTR;




void menu(void);





void push (PILAPTR * aux, int valor)





{





PILAPTR aux1;




aux1 = (PILAPTR)malloc(sizeof(PILA));




if (aux != NULL)
{




aux1->dato= valor;




aux1->sig = NULL;




if (*aux == NULL)




*aux = aux1;




else




{




aux1->sig = *aux;




*aux = aux1;




}




}
else printf ("\n\n No hubo espacio suficiente en la memoria");




}




void imprimepila (PILAPTR);




int pop (PILAPTR *);




int estavacia(PILAPTR);




int estavacia(PILAPTR aux)




{




return aux == NULL;




}




int pop(PILAPTR *aux)




{




PILAPTR aux1;




int salevalor;




aux1 = *aux;




*aux = aux1-> sig;




// Tambien le puedo asignar *aux = *aux->sig es una segunda forma




salevalor = aux1->dato;




free(aux1);




return (salevalor);




}




void imprimepila (PILAPTR aux)




{




do {




printf("%d", aux->dato);




printf ("\n");




aux= aux->sig;




}




while ( aux != NULL);




}




main ()




{




PILAPTR pilaptr= NULL;




int opcion, valor;




do{




menu();




printf("\n\n ELIGE UNA OPCION...\n");




scanf("%d",&opcion);




//while (opcion !=2)




//{




switch (opcion)




{




case 1: printf("\n\n DAME EL VALOR DEL NODO : \n");




scanf("%d",&valor);




//le llamaremos push a la funcion agregar.




push(&pilaptr, valor);




break;




case 2: if(!estavacia(pilaptr))




printf("\n\n EL VALOR EXTRAIDO DE LA PILA ES: %d", pop(&pilaptr));




getch ();




break;




case 3: printf("\n\n Los valores de al pila son:\n");




imprimepila (pilaptr);




getch ();




break;




case 4: printf("\n\n Presione enter para salir de la ejecucion \n");




}




}




while (opcion !=4);




}




void menu(void)




{




system("cls");




printf("\n\n OPERACIONES DISPONIBLES CON LA PILA \n\n Elija una opcion:");




printf("\n\n 1 Agregar un nodo a la pila\n");




printf("\n\n 2 Eliminar nodos en la pila\n");




printf("\n\n 3 Mostrar la pila \n");




printf("\n\n 4 Finalizar \n");




}





Pantallas ejecutando el programa




Menu





Primera opción









Segunda opción






Tercera opción




No hay comentarios:

Publicar un comentario