#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#define tamax 10
using namespace::std;
struct pila
{
int info[10];
int tope;
int valor;
};
void crear_pila(pila &p);
void pila_vacia(pila &p);
void apilar(pila &p, int valor);
void desapilar(pila &p);
void mostar_pila(pila &p);
int sw =0;
void menu()
{
system("cls");
cout<<"\n\t1_Crear Pila ";
cout<<"\n\t2_Apilar ";
cout<<"\n\t3_Desapilar ";
cout<<"\n\t4_Mostrar Pila ";
cout<<"\n\t5_Salir \n";
cout<<"\n\tElija Opcion a realizar: ";
}
int main()
{
int opc, valor;
struct pila p;
do
{
menu();
cin>> opc;
switch(opc)
{
case 1:crear_pila(p);break;
case 2:
system("cls");
if(sw == 0)
{
system("cls");
cout<<"\n\n\n\n\t\t\tDebe Crear Pila\n";
system("PAUSE");break;
}
cout<<"\n\n\n\n\t\tIngrese un numero Entero: ";
cin>>valor;
apilar(p,valor);break;
case 3:
if(sw == 0)
{
system("cls");
cout<<"\n\n\n\n\t\tLa Pila Esta Vacia no puede desapilar\n";
system("PAUSE");
}
desapilar(p);break;
case 4:
if(sw == 0)
{
system("cls");
cout<<"\n\n\n\n\t\tLa Pila esta vacia no se puede mostrar\n";
system("PAUSE");
}
mostar_pila(p);break;
}
}while(opc!=5);
return 0;
}
void crear_pila(pila &p)
{
system("cls");
for(int x=0;x<10;x++)
{
p.info
- =0;
sw= 1;
cout<<"\n\n\n\n\t\tLa Pila Se ha sido Creada\n";
system("pause");
}
void pila_vacia(pila &p)
{
p.tope=0;
}
void apilar(pila &p, int valor)
{
if(p.tope == tamax)
{
system("cls");
cout<<"\n\n\n\n\t\tLa Pila Esta Llena\n";
system("PAUSE");
}
else
{
system("cls");
p.tope++;
p.info[p.tope] = valor;
cout<<"\n\n\n\n\t\tEl Elemento: "<<valor<<" ha sido Guardado\n" ;
system("PAUSE");
}
}
void desapilar(pila &p)
{
int dato;
if(sw=0)
{
sw= 1;
system("cls");
p.tope--;
cout<<"\n\n\n\n\tSe ha eleminado el dato "<<dato<<"\n";
system("PAUSE");
}
}
void mostar_pila(pila &p)
{
system("cls");
if(p.tope > 0)
{
sw= 1;
}
else
{
for(int j =0;j<tamax;j++)
{
cout<<"\n\t"<<p.info[j]<<"\n\t";
}
cout<<"\n\n\n\tElementos de la Pila\n";
system("PAUSE");
}
}