Posted by :
Jason
jueves, 12 de enero de 2017
En una PILA ingresaremos caracteres y números a una pila con las funciones Agregar, Eliminar, Mostrar y Destruir la pila.
Código:
#include<iostream>
#include<cstdlib>
using namespace std;
struct nodo{
char let;// usamos char para poder obtener los caractere para la pila
struct nodo *sgte;
};
typedef struct nodo *Puntero;
class Pila{
public:
Pila(void);
void Apilar(int );
int Desapilar(void );
void tope(void);
bool PilaVacia(void);
void MostrarPila(void);
void DestruirPila(void);
private:
Puntero Tope;
};
Pila::Pila(void){
Tope=NULL;
}
bool Pila::PilaVacia(void){
if(Tope==NULL)
return true;
else
return false;
}
void Pila::Apilar(int x){
Puntero p_aux;
p_aux=new(struct nodo);
p_aux->let=x;
p_aux->sgte=Tope;
Tope=p_aux;
}
//eliminara el elemento del tope de la pila ingresado
int Pila::Desapilar(void){
int x;
Puntero p_aux;
if(Tope==NULL)
cout<<"\n\n\tLa Pila esta Vacia.";
else{
p_aux=Tope;
x=p_aux->let;
Tope=Tope->sgte;
delete(p_aux);
}
return x;
}
//NOS MOSTRARA TOTODS LOS ELELMENTOS INGRESADOS ASI COMO LOS CARACTERES Y NUMEROS EN LA PILA
void Pila::MostrarPila(void){
Puntero p_aux;
p_aux=Tope;
while(p_aux!=NULL){
cout<<"\t\t\t "<<p_aux->let<<endl;
p_aux=p_aux->sgte;
}
}
//DESTRUYE LA PILA POR COMPLETAMENTE DEGANDOLA VACIA.
void Pila::DestruirPila(void){
Puntero p_aux;
while(Tope!=NULL){
p_aux=Tope;
Tope=Tope->sgte;
delete(p_aux);
}
}
void menu(void)
{
cout<<"\n\t PILA CON CARACTERES Y NUMERSO \n\n";
cout<<" \t 1. AGREGAR A LA PILA "<<endl;
cout<<" \t 2. ELIMINAR DE LA PILA "<<endl;
cout<<" \t 3. MOSTRAR PILA "<<endl;
cout<<" \t 4. DESTRUIR PILA "<<endl;
cout<<" \t 5. SALIR "<<endl;
cout<<"\t ESCOGA UNA OPCION: ";
}
int main(void ){
//clolor de pantalla
system("color f9");
Pila pila;
char x;
int op;
do
{
menu(); cin>> op;
switch(op)
{
case 1: cout<< "\n\t INGRESE NUMERO Para la PILA: "; cin>> x;
pila.Apilar(x);
cout<<"\n\n\t\tNumero ( " << x << " ) agregado en la pila.\n\n";
break;
case 2:
if(pila.PilaVacia()==true)
cout<<"\n\n\tLa Pila esta Vacia.";
else{
x = pila.Desapilar( );
cout<<"\n\n\tNumero ( "<<x<<" ) eliminado de la PILA\n";
}
break;
case 3:
cout << "\n\n\t\t MOSTRANDO LA PILA\n\n";
if(pila.PilaVacia()!=true)
pila.MostrarPila( );
else
cout<<"\n\n\tLa Pila esta Vacia."<<endl;
break;
case 4:
pila.DestruirPila( );
cout<<"\n\n\t\tPila ha DESTRUIDA\n\n";
break;
}
cout<<endl<<endl;
system("pause");
system("cls");
}while(op!=5);
return 0;
}
gracias
ResponderEliminarGRACIAS!
ResponderEliminar