Entonces seria a si verdad o aun esta ma???
Código C++:
Ver original#include <iostream.h>
#include <conio.h>
#define MAX 3
#define VACIO -1
typedef int TipoTope;
typedef char TipoElem;
typedef struct TipoPila{
TipoTope Tope ;
TipoElem Elementos [MAX];
}Pila;
void InicializarPila (TipoPila *Stack);
int PilaLlena(TipoPila Stack);
int PilaVacia(TipoPila Stack);
void Push (TipoPila *Stack,TipoElem Elemen);
int Pop (TipoPila *Stack,TipoElem *Elemen);
void Imprimir (TipoPila Stack);
void Contar (TipoPila Stack);
main ()
{
TipoPila Pila;
TipoTope Tope=0;
TipoElem Elementos=0;
int opcion1=0;
while (opcion1!='s')
{
cout << "\n\nSELECCIONE UNA OPCION DE LAS SIGUIENTES:";
cout <<"\n1 Inicializar Pila: \n";
cout <<"2 Ingresar elementos a la pila: \n";
cout <<"3 Sacar elementos de la pila: \n";
cout <<"4 Imprimir elementos de la pila: \n";
cout <<"5 Contar elementos de la pila: \n";
cout <<"\n opcion:";
cin >> opcion1;
switch (opcion1)
{
case 1:
InicializarPila(&Pila);
cout<<"Pila inicializada ...\n";
break;
case 2:
if(PilaLlena(Pila)){
cout << "\nPila llena!!!!\n";}
else{
cout<<"Ingrese elementos a la pila:";
cin >> Elementos;
Push(&Pila,Elementos);
break;
case 3:
if(PilaVacia(Pila)){
cout << "\nLa pila esta vacia ingrese elementos primero!!!!\n";
}
else
{
Pop(&Pila,&Elementos);
cout <<"\n El elemento sacado de la pila es: "<<Elementos;
}
break;
case 4:
Imprimir(Pila);
break;
case 5:
Contar(Pila);
break;
}}}
}
//InicializarPila
void InicializarPila(TipoPila *Stack)
{
Stack->Tope=VACIO;
}
//PilaLlena
int PilaLlena(TipoPila Stack)
{
return (Stack.Tope==MAX);
}
//PilaVacia
int PilaVacia(TipoPila Stack)
{
return (Stack.Tope==VACIO);
}
//Push
void Push (TipoPila *Stack,TipoElem Elemen)
{
Stack->Tope++;
Stack->Elementos[Stack->Tope]=Elemen;
}
//Pop
int Pop (TipoPila *Stack,TipoElem *Elemen)
{
*Elemen=Stack->Elementos[Stack->Tope];
Stack->Tope--;
// return *Elemen;
}
//Imprimir
void Imprimir (TipoPila Stack)
{
TipoElem Elemen;
while (!PilaVacia(Stack))
{
Pop (&Stack,&Elemen);
cout <<"\n"<<Elemen;
}
}
//Contar
void Contar (TipoPila Stack)
{
int contador=0;
TipoPila Aux;
TipoElem Elemen;
InicializarPila (&Aux);
while (!PilaVacia(Stack))
{
Pop(&Stack,&Elemen);
contador++;
cout << contador;
Push(&Aux,Elemen);
}
}