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


{ 2 comentarios ... read them below or Comment }

- Copyright © Jason Igneel -