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!
Código:
#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;
}