#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<windows.h>
using namespace std;
struct Nodo
{
int Campo;
struct Nodo *siguiente;
};
class Pila
{
struct Nodo*Inicio;
public:
Pila()
{
Inicio=NULL;
}
void MostrarDato();
void InsertarDato(int Dato);
int SacarDato();
void ValDato (Pila &PILA1,Pila &PILA2,int Dato);
//
};
void Pila::MostrarDato()
{
cout<<"Datos de la pila"<<endl;
struct Nodo *aux=Inicio;
int i=1;
if(Inicio==NULL)
{
cout<<"<<<<<<Pila vacia>>>>>>";
}else
while(aux!=NULL)
{
cout<<"Dato "<<i++<<" : "<<aux>Campo<<endl;
aux=aux->siguiente;
}
//system("pause");
void Pila::InsertarDato(int Dato)
{
struct Nodo*nuevo=new(struct Nodo);
nuevo->Campo=Dato;
if(Inicio!=NULL)
{
nuevo->siguiente=Inicio;
Inicio=nuevo;
}else
{
Inicio=nuevo;
nuevo->siguiente=NULL;
}
}
int Pila::SacarDato()
{
struct Nodo*aux=Inicio;
int Valor;
if(aux!=NULL)
{
Valor=aux->Campo;
Inicio=aux->siguiente;
delete aux;
}
return Valor;
/*
void Pila :: ValDato (int &Dato)
{
//struct Nodo*aux=Inicio;
if (Dato)
{
cout<<"Operacion indeterminada"<<endl;
system ("pause");
}else
{
}
return Ban;
}//Termina ValDen
*//*
void Pila::ValDato(Pila &PILA1,Pila &PILA2,int Dato)
{
Dato=PILA1.ObtenerDato();
PILA2.PonerDato(Dato);
if(Dato=PILA1.ObtenerDato()>=PILA2.PonerDato(Dato))
{
cout<<"error"<<endl;
}else
PILA2.MostrarDato();
}
}*/
int main()
{
int OP;
int NP;
Pila PILA1,PILA2, PILA3;
//int OP=0;
//Pila EjPila;
/*
cout<<"ingresa el numero de elementos que quieres contenga la pila :
"<<endl;
cin>>NP;
ApP=new Pila[NP];
for(int i=0;i<NP;i++)
{
cout<<"ingrese el dato "<<i++<<EjPila->PonerDato(int Dato);
}
*/
cout<<"INICIO PILA"<<endl;
//cout<<endl<<endl<<endl;
//PILA1.MostrarDato();
int Dato=0;
PILA1.InsertarDato(Dato+1);
PILA1.InsertarDato(Dato+2);
PILA1.InsertarDato(Dato+3);
//PILA1.MostrarDato();
//cout<<"PRIMER VALOR OBTENIDO"<<" :
"<<EjPila.ObtenerDato()<<endl;
//PILA1.MostrarDato();
//cout<<endl<<endl<<endl;
do
{//inicia do-while
cout<<"PILA 1"<<endl;
PILA1.MostrarDato();
cout<<""<<endl;
cout<<endl;
cout<<"PILA 2"<<endl;
PILA2.MostrarDato();
cout<<""<<endl;
cout<<endl;
cout<<"PILA 3"<<endl;
PILA3.MostrarDato();
cout<<""<<endl;
//PILA1.MostrarDato();
cout<<endl;
cout<<"OPCIONES"<<endl;
cout<<"1.-DE PILA 1 A PILA 2"<<endl;
cout<<"2.-DE PILA 1 A PILA 3"<<endl;
cout<<"3.-DE PILA 2 A PILA 1"<<endl;
cout<<"4.-DE PILA 2 A PILA 3"<<endl;
cout<<"5.-DE PILA 3 A PILA 1"<<endl;
cout<<"6.-DE PILA 3 A PILA 2"<<endl;
cout<<"ingrese el movimiento"<<endl;
cin>>OP;
//Dato=PILA1.ObtenerDato();
//PILA2.PonerDato(Dato);
//system("pause");
int Mayor=0,Menor=0;
switch(OP)
{//inicia switch
case 1:
// Dato=PILA1.ObtenerDato();
//PILA2.PonerDato(Dato);
/*Mayor=PILA1.ObtenerDato();
Menor=PILA2.ObtenerDato();
if(Menor==NULL)
break;
case 6:
Dato=PILA3.SacarDato();
PILA2.InsertarDato(Dato);
PILA2.MostrarDato();
system("cls");
break;
default:system("cls");cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl
<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<
endl<<endl<<endl;cout<<"\n\n\nOPCION ERRONEA, INGRESE DE NUEVO UN
NUMERO ENTRE EL 1 Y EL 6";Sleep(5000);system("cls");
/*case 7:
cout<<"Gracias por su visita"<<endl<<endl;
break;
// }//termina switch*/
}
}while(OP!=6);
return OP;
system("pause");
getch();
}