Bueno e cambiado mi codigo un poco pero aun me sale error en imprimir
Código C++:
Ver original#include <iostream.h>
#include <conio.h>
#define MAX 2
#define VACIO -1
typedef int TipoTope;
typedef char TipoElem;
typedef struct TipoPila{
TipoTope Tope ;
TipoElem Elementos [MAX];
};
void InicializarPila (TipoPila *Stack);
int PilaLlena(TipoPila *Stack);
int PilaVacia(TipoPila *Stack);
int Push (TipoPila *Stack,TipoElem Elemen);
int Pop (TipoPila *Stack,TipoElem Elemen);
int Imprimir (TipoPila *Stack);
main ()
{
TipoPila Pila;
TipoElem Elementos;
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";
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 elemnto sacado de la pila es: "<<Elementos;
}
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
int Push (TipoPila *Stack,TipoElem Elemen)
{
return (Stack->Tope++);
}
//Pop
int Pop (TipoPila *Stack,TipoElem Elemen)
{
return (Stack->Tope--);
}
//Imprimir
int Imprimir (TipoPila *Stack)
{
TipoElem Elemen;
while (!PilaVacia(Stack))
{
Pop (*Stack,&Elemen);
cout << Elemen;
}
}