#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();
 
}