Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: GABETORAP en 2 Diciembre 2011, 01:40 am



Título: Pilas en c++
Publicado por: GABETORAP en 2 Diciembre 2011, 01:40 am
Hola a todos
el siguiente programa FUNCIONA CORRECTAMENTE!!
Solo que necesito exponerlo y no entiendo bn las instrucciones
Por favor alguien podría explicarme linea a linea el codigo: gracias!

#include <iostream>
using namespace std;
struct nodo
{
   int dato;
   struct nodo* Next;
};

  typedef struct nodo *pilaPtr;
  pilaPtr Nuevo, Inicio, Aux, P;

   pilaPtr getpila(void)
{
pilaPtr p;
p=(pilaPtr)malloc(sizeof(struct nodo));
if(p != 0)
p->Next = 0;
return (p);
}

void freepila(pilaPtr p)
{
free(p);
}

void Imprime()
{
pilaPtr Aux;
Aux = Inicio;

if(Aux != 0)
{
do
{
cout << Aux->dato <<"\t ";
Aux = Aux->Next;

}
while(Aux != 0);
}
}

void Agregar(int X)
{
Nuevo = getpila();
if(Nuevo != 0)
{
Nuevo->Next = Inicio;
Inicio = Nuevo;
Inicio->dato = X;
}
}
void Menu()
{
system("cls");

cout << "\nMenu";
cout << "\n1 AGREGAR UN NODO A LA LISTA ";
cout << "\n2 ELIMINAR NODO";
cout << "\n3 IMPRIMIR LISTA";
cout << "\n4 SALIR\n\n";
}
int main()
{
  int Opc = 0, X;
   do
   {
      Menu();
    cout << "\n TECLEE UNA OPCION: ";
    cin >> Opc;

switch (Opc)
{
case 1:
{
cout << "\n TECLEE EL VALOR QUE DESEE AGREGAR ";
cin>>X;
Agregar(X);
break;
}
case 2:
{
P=Inicio;
Inicio=P->Next;
free(P);

system("PAUSE");
break;
}
case 3:
Imprime();

system("PAUSE");
break;
}
}
while(Opc != 4);

return EXIT_SUCCESS;
}


Título: Re: Pilas en c++
Publicado por: .:UND3R:. en 2 Diciembre 2011, 01:47 am
Podrías hacer aun que sea el esfuerzo de ir al subforo de C++ como mínimo para que desde ahí te sirvan en bandeja tu código, Saludos


Título: Re: Pilas en c++
Publicado por: GABETORAP en 2 Diciembre 2011, 01:54 am
lo siento soy nuevo!!


Título: Re: Pilas en c++
Publicado por: .:UND3R:. en 2 Diciembre 2011, 01:56 am
Ningún problema, bienvenido

Subforo indicado: http://foro.elhacker.net/programacion_cc-b49.0/ (http://foro.elhacker.net/programacion_cc-b49.0/)