Pilas en c++

Iniciado por GABETORAP, 2 Diciembre 2011, 01:50 AM

0 Miembros y 1 Visitante están viendo este tema.

GABETORAP

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;
}

[L]ord [R]NA

Segun veo, si ahora necesitas que te expliquen el codigo fue porque lo plagiaste y eso contaria como hacerte la tarea... Aqui no se hacen tareas.