jueves, 28 de octubre de 2010

Pilas en C

un programa en C , donde muestra una gramática diferente pero un poco mas entendible para mí , espero que para uds también.

Código:

class Pilas
{
public:
void AgregaFa(char);
char RemueveFaCa(void);
Pilas(void); //constructor
~Pilas(void); //destructor

private:
bool EsVaciaFaBool(void);//funciones boleanas
bool EsLlenaFaBool(void);
char LaPilaArCa[12];
int TopeEn,TopeMaxEn;

};

void Pilas::AgregaFa(char.ValorCa)
{
if(!EsLlenaFaBool())
LapilaArCa[++TopeEn] = ValorCa;
else
{
printf("Desborde de Pila\n");;
exit(1);//para el programa
}
}
char Pilas::RemuevaFaCa(void)
{
if(!EsVaciaFaBool())
return LaPilaArCa[TopeEn--];
else
{
printf("PilaVacia\n");
exit(1); //para el programa
}
}
bool Pilas::EsVaciaFaBool(void)
{
return Bool(TopeEn == -1);

}
bool Pilas::EsLlenaFaBool(void)
{
TopeEn = -1;
TopeMaxEn = 10;
}
Pilas::~Pilas(void){}

void main(void)
{
Pilas LaPilaCa();
char InfoCa = 'a';
int iEn;

while(InfoCa != 'x')
{
puts("Dame un valor caracter");
scanf("%c",&InfoCa);

LaPilaCa.AgregaFa(InfoCa);
}LaPilaCa.PintaPilaCa();
for(iEn = 1; iEn <= 3; iEn ++)
printf("%c",RemueveFaCa());
}LaPilaCa.PintaPilaFa();
void PintaPilaFa(void);

int Tope0En;
void Pilas::PintaPilaFa()
{
printf("|%c| < - TopeEn\n", LaPilaArCa[TopeEn]);
Tope0En = TopeEn - 1;
while(Tope0En != -1)
printf("|%c|\n",LaPilaArCa[Tope0En --]);
}

1 comentario:

  1. No se si compila, ya que lo hice en las compus de mi fac, y de casualidad no tenían mingw
    porfa compilenlo para asegurarse que funciona jee.

    ResponderEliminar

Entradas populares