#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
struct nodo
{ int inf;
struct nodo *sgt;
};
struct nodo *pila;
void agregar();
void imprimir();
void eliminar();
char o=0;
void main()
{
pila=(nodo *)malloc(sizeof(nodo));
pila=NULL;
while (o!='4')
{ clrscr();
printf("MENU\n\n");
printf("\n(1) Agregar Nodo");
printf("\n(2) Eliminar Nodo");
printf("\n(3) Imprimir Pila");
printf("\n(4) Salir");
printf("\n\nOpcion: ");
o=getch();
if (o=='1') agregar();
if (o=='2') eliminar();
if (o=='3') imprimir();
}
}
void agregar()
{ struct nodo *nuevo;
int n=0;
nuevo=(nodo *)malloc(sizeof(nodo));
clrscr();
printf("AGREGAR NODO\n\nIngrese un Numero: ");
scanf("%d", &n);
nuevo->inf=n;
nuevo->sgt=NULL;
if (pila==NULL)
{ pila=nuevo;
}
else
{ nuevo->sgt=pila;
pila=nuevo;
}
}
void imprimir()
{ struct nodo *aux;
aux=(nodo *)malloc(sizeof(nodo));
clrscr();
printf("CONTENIDO DE LA PILA\n\n");
if (pila==NULL)
{ printf("La Pila esta vacia...");
}
else
{ aux=pila;
while (aux!=NULL)
{ printf("%d\n",aux->inf);
aux=aux->sgt;
}
}
getch();
}
void eliminar()
{ clrscr();
struct nodo *aux;
aux=(nodo *)malloc(sizeof(nodo));
if (pila!=NULL)
{ aux=pila;
pila=pila->sgt;
printf("Se ha eliminado el %d", aux->inf);
free(aux);
}
else
printf("La pila esta vacia...");
getch();
}