Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/05/2012, 01:28
bichis_29
 
Fecha de Ingreso: septiembre-2011
Ubicación: Mexico D.F
Mensajes: 10
Antigüedad: 13 años, 2 meses
Puntos: 0
Exclamación problema con mi programa pilas en c++

Hola. Que tal amigos apenas estoy viendo con pilas y colas en c++ pero desafortunadamente la maestra enseña pesimo Llevo dos dias intentandolo y nada. Estoy desesperado. Este es mi codigo. Supongamos que el usuario desea introducir cuatro numeros: 15,14,13,12. En valor obtenido me debe aparecer 12 y en dato1, dato2, datos3 me deben aparecer 15,14 y 13

#include<iostream>

using namespace std;


struct Nodo
{
int campo;
struct Nodo *siguiente,*anterior;
};

class Pila
{
struct Nodo *inicio,*final;
int indicePila;
public:
Pila()
{
indicePila=-1;
inicio=NULL;
final=NULL;
}

void mostrarDatos();

int numeroDatos();

void ponerDato(int Dato);

int obtenerDato();
};



void Pila::mostrarDatos()
{
cout<<" "<<endl;
cout<<"Datos de la Pila"<<endl;
struct Nodo *aux=final;
int i=1;
while(aux!=NULL)
{
cout<<"Dato"<<i++<<":"<<aux->campo<<endl;
aux=aux->siguiente;
}
}

int Pila::numeroDatos()
{
return indicePila+1;
}

void Pila::ponerDato(int Dato)
{
struct Nodo *nuevo=new(struct Nodo);

nuevo->campo=Dato;
nuevo->anterior=NULL;
nuevo->siguiente=NULL;

if(final!=NULL)
{
final->siguiente=nuevo;
nuevo->anterior=final;

}
else
{
inicio=nuevo;
final=nuevo;
indicePila++;
}
}

int Pila::obtenerDato()
{
struct Nodo *aux=final;

int valor;

if(aux!=NULL)
{
valor=aux->campo;
final=aux->siguiente;
indicePila--;

}
return valor;

}

int main()
{
int metere;
int c=0;
Pila EjemploPila;
cout<<"Inicia Cola"<<endl;

cout<<"Cuantos elementos vas a meter: "<<endl;
cin>>metere;
while(c<metere)
{
int n;
cout<<"Valor a meter: ";
cin>>n;
EjemploPila.ponerDato(n);
c++;
}
cout<<" "<<endl;
cout<<"Valor obtenido:"<<EjemploPila.obtenerDato()<<endl;

EjemploPila.mostrarDatos();

cout<<" "<<endl;

system("Pause");

return 0;
}