elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Codigo para invertir pilas en: 14 Marzo 2015, 03:00 am
Buenas...

Tengo este codigo que tiene varias funciones, una de ellas es invertir una pila, el codigo corre sin errores, pero a la hora de pedirle que muestre la pila invertida, unicamente me muestra el mensaje de "mostrando pila invertida" pero no me muestra nada, no se si alguien pueda ayudarme a encontrar mi error.

Gracias

...

#include <cstdlib>
#include <iostream>
#include <stack>
using namespace std;
 
struct nodo{
    int nro;
    struct nodo *sgte;
};
 
typedef nodo *ptrPila;   // creando nodo tipo puntero( tipo de dato )

  // creando nodo tipo puntero( tipo de dato )
 
/*                        Apilar elemento     
------------------------------------------------------------------------*/
void push( ptrPila &p, int valor )
{
     ptrPila aux;
     aux = new(struct nodo);  // apuntamos al nuevo nodo creado
     aux->nro = valor;
     
     aux->sgte = p ;
     p = aux ;
}
 
/*                Desapilar elemento(devuelve elemento)     
------------------------------------------------------------------------*/
int pop( ptrPila &p )
{
     int num ;
     ptrPila aux;
     
     aux = p ;
     num = aux->nro;   // asignamos el primer valor de la pila
     
     p = aux->sgte ;
     delete(aux);
     
     return num;
}
 

 
/*                Muestra elementos de la pila invertidos 
------------------------------------------------------------------------*/
void invertirpila(int argc, int *argv[])

  stack<int> s;
  for (int i='0'; i >= '1'; i++)
    s.push(i);
 
  while (s.empty() )
  {
    cout << s.top() << " " ;
    s.pop();
  }
 
}
//        Eliminar todos los elementos de la pila     
//------------------------------------------------------------------------*/
void destruir_pila( ptrPila &p)
{
     ptrPila aux;
     
     while( p != NULL)
     {
           aux = p;
           p = aux->sgte;
           delete(aux);
     }
}

/*                        Menu de opciones   
------------------------------------------------------------------------*/
void menu()
{
    cout<<"\n\t IMPLEMENTACION DE PILAS EN C++\n\n";
    cout<<" 1. APILAR                                "<<endl;
    cout<<" 2. DESAPILAR                             "<<endl;
    cout<<" 3. MOSTRAR PILA INVERTIDA                "<<endl;
    cout<<" 4. ELIMINAR PILA                         "<<endl;
    cout<<" 5. SALIR                                 "<<endl;
 
    cout<<"\n INGRESE OPCION: ";
}
 
/*                        Funcion Principal       
------------------------------------------------------------------------*/
int main(int argc, int *argv[])
{
    ptrPila p = NULL;  // creando pila
    int dato;
    int op;
    int x ; // numero que devuelve la funcon pop
   
    system("color 0b");
 
    do
    {
        menu();  cin>> op;
 
        switch(op)
        {
            case 1:
 
                 cout<< "\n NUMERO A APILAR: "; cin>> dato;
                 push( p, dato );
                 cout<<"\n\n\t\tNumero " << dato << " apilado...\n\n";
            break;
 
 
            case 2:
 
                 x = pop( p );
                 cout<<"\n\n\t\tNumero "<< x <<" desapilado...\n\n";
            break;
                 
 
            case 3:
 
               
                cout << "\n\n MOSTRANDO PILA INVERTIDA\n\n";
                 if(p!=NULL)
                    pop( p );
                 else
                    cout<<"\n\n\tPila vacia..!"<<endl;
                   
               
             
            break;
 
 
            case 4:
 
                 destruir_pila( p );
                 cout<<"\n\n\t\tPila eliminada...\n\n";
            break;
           
         }
 
        cout<<endl<<endl;
        system("pause");  system("cls");
 
    }while(op!=5);
   
   
    return 0;
}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines