Estructura
Estructura
Estructura
“INCOS POTOSI”
Estructura de datos
NOMBRE:
GRADO: SEGUNDO
DOCENTE: Lic. Edson Ortega
AÑO: 2019
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
#define TAMPILA 10
class Pila
{
private:
int listapila[TAMPILA];
int cima;
public:
Pila();
void Insertar(int x);
int Eliminar();
bool Pila_vacia();
bool Pila_llena();
void Visualizar();
int Cima_Pila();
void Vaciar_Pila();
};
// IMPLEMENTACIÓN DE LOS MÉTODOS
// CONSTRUCTOR
Pila::Pila()
{
cima = -1;
}
// INSERTAR ELEMENTOS
void Pila::Insertar(int elemento)
{
if (Pila_llena())
{
cout<<endl<<" Pila Llena, no e puede Insertar";
getch();
}
//incrementar puntero cima y copia elemento
else
{
cima++;
listapila[cima] = elemento;
}
}
// ELIMINAR ELEMENTOS
int Pila::Eliminar()
{
int aux;
if (Pila_vacia())
{
cout<<endl<<" Pila vacia, no se puede Eliminar";
getch();
}
// guarda elemento de la cima, decrementa cima y devuelve el elemento
guardado
else
{
aux = listapila[cima];
cima--;
return(aux);
}
}
// PILA VACÍA
bool Pila::Pila_vacia()
{
if(cima==-1)
return(true);
else
return(false);
}
// PILA LLENA
bool Pila::Pila_llena()
{
if(cima==TAMPILA-1)
return(true);
else
return(false);
}
// MUESTRA CONTENIDO DE LA PILA
void Pila::Visualizar()
{
int i;
if(cima==-1)
cout<<endl<<" Pila vacia";
else
{
cout<<endl<<" La pila contiene la siguiente informacion : ";
for(i=cima;i>=0;i--)
cout<<endl<<endl<<" En la posicion "<<i<<" esta el elemento :
"<<listapila[i];
}
getch();
}
int Pila::Cima_Pila()
{
if(Pila_vacia())
{
cout<<"La pila esta vacia";
getch();
}
else
{
return(listapila[cima]);
}
}
//LIMPIAR LA PILA
void Pila::Vaciar_Pila()
{
cima=-1;
}
// PROGRAMA PRINCIPAL
void main()
{
int op,ele;
Pila P;
do
{
clrscr();
cout<<endl<<" MENU DE OPCIONES";
cout<<endl<<endl<<" 1 Insertar";
cout<<endl<<endl<<" 2 Eliminar";
cout<<endl<<endl<<" 3 Visualizar";
cout<<endl<<endl<<" 4 Cima_Pila";
cout<<endl<<endl<<" 5 Vaciar_Pila";
cout<<endl<<endl<<" 6 Terminar";
cout<<endl<<endl<<endl<<" Digite su opcion : ";
cin>>op;
switch(op)
{
case 1:
cout<<endl<<endl<<" Digite un elemento :";
cin>>ele;
P.Insertar(ele);
break;
case 2:
ele=P.Eliminar();
cout<<endl<<endl<<" el elemento eliminado es : "<<ele;
getch();
break;
case 3:
P.Visualizar();
break;
case 4:
P.Cima_Pila();
cout<<endl<<endl<<"La cima de la pila es:"<<ele;
getch();
break;
case 5:
P.Vaciar_Pila();
cout<<endl<<endl<<"Se realizo la operacion";
getch();
break;
case 6:
cout<<endl<<endl<<" GRACIAS";
getch();
break;
default:
cout<<endl<<endl<<" Opcion Erronea";
getch();
}
}while(op!=6);
}