Duda con pilas en c++
Publicado por Jesus (1 intervención) el 15/03/2011 07:04:35
Hola Bueno lo que hace el programa solo es insertar y borrar elementos en una pila
este es mi archivo fuente:
#include <iostream.h>
typedef struct datos{
int dato;
struct datos *siguiente;
}tipoNodo;
typedef tipoNodo *pNodo;
typedef tipoNodo *Pila;
void push (Pila *l,int x);
int pop (Pila *l);
void push(Pila *pila,int val){
pNodo nuevo;
nuevo = (pNodo) malloc (sizeof(tipoNodo));
nuevo->dato =val;
nuevo->siguiente =*pila;
*pila = nuevo;
}
int pop(Pila *pila){
pNodo aux;
int v;
aux = *pila;
if (!aux) cout << "\npila vacia\n";
else
*pila = aux->siguiente;
v = aux->dato;
free (aux);
return v;
cout << v;
system ("pause");
}
main()
{
int x,op,val;
Pila *pila;
//Pila pila = NULL;
do{
system ("cls");
cout << "Pilas"
<<"\n1- Insertar un nuevo elemento en la pila\n2- Quitar el ultimo elemento de la pila\n3- Mostrar el contenido de la pila\n4- Salir\n\n";
fflush (stdin);
cin >> op;
switch (op){
case 1:
cout <<"Que valor deseas asignarle a la variable\n";
cin >> val;
push(*pila,val);
break;
case 2:
val=pop(*pila);
break;
case 3:
cout << *pila ;
break;
case 4:
return 0;
break;
default:cout << "Digita una opcion valida";}
system("\npause");
}while (op!=4);
}
Ya lo revise pero no encuentro en donde esta la falla , de antemano gracias.
este es mi archivo fuente:
#include <iostream.h>
typedef struct datos{
int dato;
struct datos *siguiente;
}tipoNodo;
typedef tipoNodo *pNodo;
typedef tipoNodo *Pila;
void push (Pila *l,int x);
int pop (Pila *l);
void push(Pila *pila,int val){
pNodo nuevo;
nuevo = (pNodo) malloc (sizeof(tipoNodo));
nuevo->dato =val;
nuevo->siguiente =*pila;
*pila = nuevo;
}
int pop(Pila *pila){
pNodo aux;
int v;
aux = *pila;
if (!aux) cout << "\npila vacia\n";
else
*pila = aux->siguiente;
v = aux->dato;
free (aux);
return v;
cout << v;
system ("pause");
}
main()
{
int x,op,val;
Pila *pila;
//Pila pila = NULL;
do{
system ("cls");
cout << "Pilas"
<<"\n1- Insertar un nuevo elemento en la pila\n2- Quitar el ultimo elemento de la pila\n3- Mostrar el contenido de la pila\n4- Salir\n\n";
fflush (stdin);
cin >> op;
switch (op){
case 1:
cout <<"Que valor deseas asignarle a la variable\n";
cin >> val;
push(*pila,val);
break;
case 2:
val=pop(*pila);
break;
case 3:
cout << *pila ;
break;
case 4:
return 0;
break;
default:cout << "Digita una opcion valida";}
system("\npause");
}while (op!=4);
}
Ya lo revise pero no encuentro en donde esta la falla , de antemano gracias.
Valora esta pregunta


0