Created
November 19, 2014 02:57
-
-
Save jofese/39bd5a11df0a9b81bcb2 to your computer and use it in GitHub Desktop.
implementacion de una pila usando clases en c++
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| Autor: Joel Fernandez | |
| Ejercicio: Implementacion de una Pila usando Clases | |
| IDE: Codeblocks | |
| Web: http://codebotic.blogspot.com | |
| */ | |
| #include<iostream> | |
| #include<cstdlib> | |
| using namespace std; | |
| struct nodo{ | |
| int nro; | |
| struct nodo *sgte; | |
| }; | |
| typedef struct nodo *Puntero; | |
| class Pila{ | |
| public: | |
| Pila(void); | |
| void Apilar(int ); | |
| int Desapilar(void ); | |
| void Cima(void); | |
| bool PilaVacia(void); | |
| void MostrarPila(void); | |
| void DestruirPila(void); | |
| private: | |
| Puntero cima; | |
| }; | |
| Pila::Pila(void){ | |
| cima=NULL; | |
| } | |
| bool Pila::PilaVacia(void){ | |
| if(cima==NULL) | |
| return true; | |
| else | |
| return false; | |
| } | |
| void Pila::Apilar(int x){ | |
| Puntero p_aux; | |
| p_aux=new(struct nodo); | |
| p_aux->nro=x; | |
| p_aux->sgte=cima; | |
| cima=p_aux; | |
| } | |
| void Pila::Cima(){ | |
| int x; | |
| if(cima==NULL) | |
| cout<<"\n\n\tPila Vacia...!"; | |
| else { | |
| x=cima->nro; | |
| cout<<"\n\tLa Cima es :"<<x<<endl; | |
| } | |
| } | |
| int Pila::Desapilar(void){ | |
| int x; | |
| Puntero p_aux; | |
| if(cima==NULL) | |
| cout<<"\n\n\tPila Vacia...!!"; | |
| else{ | |
| p_aux=cima; | |
| x=p_aux->nro; | |
| cima=cima->sgte; | |
| delete(p_aux); | |
| } | |
| return x; | |
| } | |
| void Pila::MostrarPila(void){ | |
| Puntero p_aux; | |
| p_aux=cima; | |
| while(p_aux!=NULL){ | |
| cout<<"\t "<<p_aux->nro<<endl; | |
| p_aux=p_aux->sgte; | |
| } | |
| } | |
| void Pila::DestruirPila(void){ | |
| Puntero p_aux; | |
| while(cima!=NULL){ | |
| p_aux=cima; | |
| cima=cima->sgte; | |
| delete(p_aux); | |
| } | |
| } | |
| void menu(void) | |
| { | |
| cout<<"\t -------------------------------------------\n"; | |
| cout<<"\t| IMPLEMENTACION DE UNA PILA |\n"; | |
| cout<<"\t|-------------------------------------------|\n"; | |
| cout<<" \t| |"<<endl; | |
| cout<<" \t| 1. APILAR |"<<endl; | |
| cout<<" \t| 2. DESAPILAR |"<<endl; | |
| cout<<" \t| 3. MOSTRAR PILA |"<<endl; | |
| cout<<" \t| 4. DESTRUIR PILA |"<<endl; | |
| cout<<" \t| 5. MOSTRAR CIMA |"<<endl; | |
| cout<<" \t| 6. SALIR |"<<endl; | |
| cout<<" \t| |"<<endl; | |
| cout<<"\t -------------------------------------------\n"; | |
| cout<<"\t Ingrese opcion: "; | |
| } | |
| int main(void ){ | |
| system("color 0a"); | |
| Pila pila; | |
| int x; | |
| int op; | |
| do | |
| { | |
| menu(); cin>> op; | |
| switch(op) | |
| { | |
| case 1: cout<< "\n\t INGRESE NUMERO A APILAR: "; cin>> x; | |
| pila.Apilar(x); | |
| cout<<"\n\n\t\tNumero " << x << " apilado...\n\n"; | |
| break; | |
| case 2: | |
| if(pila.PilaVacia()==true) | |
| cout<<"\n\n\tPila Vacia...."; | |
| else{ | |
| x = pila.Desapilar( ); | |
| cout<<"\n\n\tNumero "<<x<<" desapilado\n"; | |
| } | |
| break; | |
| case 3: | |
| cout << "\n\n\t MOSTRANDO PILA\n\n"; | |
| if(pila.PilaVacia()!=true) | |
| pila.MostrarPila( ); | |
| else | |
| cout<<"\n\n\tPila vacia..!"<<endl; | |
| break; | |
| case 4: | |
| pila.DestruirPila( ); | |
| cout<<"\n\n\t\tPila eliminada...\n\n"; | |
| break; | |
| case 5: | |
| pila.Cima(); | |
| break; | |
| } | |
| cout<<endl<<endl; | |
| system("pause"); system("cls"); | |
| }while(op!=6); | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment