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