Advertisement
Guest User

Ejercicio 2 - Hacer un menú para una pila.cpp

a guest
Oct 23rd, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.50 KB | None | 0 0
  1. /*Ejercicio 2: Hacer un programa en C++, utilizando Pilas que contenga el siguiente
  2. menu:
  3.  
  4.     1. Insertar un caracter a la pila
  5.     2. Mostrar todos los elementos de la pila
  6.     3. Salir
  7. */
  8.  
  9. #include<iostream>
  10. #include<conio.h>
  11. #include<stdlib.h>
  12. using namespace std;
  13.  
  14. struct Nodo{
  15.     char dato;
  16.     Nodo *siguiente;   
  17. };
  18.  
  19. //Prototipo
  20. void menu();
  21. void agregarPila(Nodo *&,char);
  22. void sacarPila(Nodo *&,char &);
  23.  
  24. int main(){
  25.    
  26.     menu();
  27.    
  28.     getch();
  29.     return 0;
  30. }
  31.  
  32. void menu(){
  33.     Nodo *pila = NULL;
  34.     int opcion;
  35.     char dato;
  36.    
  37.     do{
  38.         cout<<"\t.:MENU:.\n";
  39.         cout<<"1. Insertar un caracter a la pila"<<endl;
  40.         cout<<"2. Mostrar todos los elementos de la pila"<<endl;
  41.         cout<<"3. Salir"<<endl;
  42.         cout<<"Opcion: ";
  43.         cin>>opcion;
  44.        
  45.         switch(opcion){
  46.             case 1: cout<<"\nDigite un caracter: ";
  47.                     cin>>dato;
  48.                     agregarPila(pila,dato);
  49.                     break;
  50.             case 2: cout<<"\nMostrando todos los elementos de la pila: ";
  51.                     while(pila != NULL){
  52.                         sacarPila(pila,dato);
  53.                         if(pila != NULL){
  54.                             cout<<dato<<" , ";
  55.                         }
  56.                         else{
  57.                             cout<<dato<<".";
  58.                         }
  59.                     }
  60.                     cout<<"\n";
  61.                     system("pause");
  62.                     break;
  63.             case 3: break;
  64.         }
  65.         system("cls"); //limpiar pantalla
  66.     }while(opcion != 3);
  67.    
  68. }
  69.  
  70. void agregarPila(Nodo *&pila,char n){
  71.     Nodo *nuevo_nodo = new Nodo();
  72.     nuevo_nodo->dato = n;
  73.     nuevo_nodo->siguiente = pila;
  74.     pila = nuevo_nodo;
  75. }
  76.  
  77. void sacarPila(Nodo *&pila,char &n){
  78.     Nodo *aux = pila;
  79.     n = aux->dato;
  80.     pila = aux->siguiente;
  81.     delete aux;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement