Código:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
typedef nodo *ptrPila
struct nodo{
int sgte;
int nro;
struct nodo *sgte;
};
void push(ptrPila &p, int valor )
{
ptrPila aux;
aux = new(struct nodo);
aux->nro = valor;
aux->sgte = p ;
p = aux ;
}
void pop( ptrPila &p )
{
int num ;
ptrPila aux;
aux = p ;
num = aux->nro;
p = aux->sgte ;
delete(aux);
return num;
}
void mostrar_pila( ptrPila p )
{
ptrPila aux;
aux = p;
while( aux !=NULL )
{
printf("aux->nro end");
aux = aux->sgte;
}
}
void destruir_pila( ptrPila &&p)
{
ptrPila aux;
while( p != NULL)
{
aux = p;
p = aux->sgte;
delete(aux);
}
}
void menu()
{
printf("\n Biblioteca San Juan");
printf("\n 1. Insertar Libros\n");
printf(" 2. Sacar libro\n");
printf(" 3. Ver lista de libros\n");
printf(" 4. Llamar ultimo libro de la pila\n");
printf(" 5. Presione 5 para salir");
printf("Elija una opci%cn =>",162);
}
int main()
{
ptrPila p = NULL; // creando pila
int dato;
int op;
int x ; // numero que devuelve la funcon pop
do
{
menu();
scanf("%i",&op);
switch(op)
{
case 1:
printf("\n Libros a apilar: ");
scanf("%i",&dato);
push( "%p", &dato );
printf("Libro apilado...\n\n");
break;
case 2:
x = pop( p );
printf("\n\n\Libro " x " desapilado...\n\n");
break;
case 3:
printf("\n\n Mostrandolista \n\n");
if(p!=NULL)
mostrar_pila( p );
else
printf("Lista vacia");
break;
case 4:
destruir_pila( p );
printf("\n Pila de libros eliminada...\n\n");
break;
}
system("pause");
system("cls");
}while(op!=5);
return 0;
}