Aver esta implementacion esta bien o mal
Código C++:
Ver originalvoid Push (TipoPila *Stack,TipoElem *Elemen)
{
*Elemen=Stack->Elementos[Stack->Tope=++];
}
//Pop
void Pop (TipoPila *Stack,TipoElem *Elemen)
{
*Elemen=Stack->Elementos[Stack->Tope--];
}
Edito: Creo que esta mal no se pero implemente este otro creo que esta bien no se aun por que no me correo el programa si me lo compila pero me manda un error y se cierra
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];
}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);
int Imprimir (TipoPila Stack);
int Contar (TipoPila *Stack);
main ()
{
TipoPila Pila;
TipoTope Tope;
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";
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:
cout << Imprimir(Pila);
break;
case 5:
cout << 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
int Imprimir (TipoPila Stack)
{
TipoElem Elementos;
while (!PilaVacia(&Stack))
{
Pop (&Stack,Elementos);
cout <<"\n"<<Elementos;
}
}
//Contar
int Contar (TipoPila *Stack)
{
int contador=0;
TipoPila Aux;
TipoElem Elementos;
InicializarPila (&Aux);
while (!PilaVacia(Stack))
{
Pop(&Stack,&Elementos);
contador=contador+1;
Push(&Aux,Elementos);
}
}*/
Ahora me falta que cuente y que imprima espero no se me complique de nuevo que cren que este mal