viernes, 18 de febrero de 2011

Laboratorio06 - Pilas


Ola este es el Laboratorio 06 del curso de estructuras de datos que trata sobre Pilas .. espero les ayude.. Saludos.


/* Pilas */

#include<iostream.h>
#include<conio.h>

using namespace std;


typedef struct Nodo /// Estructura Nodo
{  int dato;
   struct Nodo *sgt;
}TNodo;


typedef struct Pila  /// Estructura Pila
{  TNodo *cabeza;
}TPila;


/*   CREAR NODO  */
TNodo *crearNodo(int x)
{  TNodo *nodo = (TNodo*)malloc(sizeof(TNodo));
   nodo->dato = x;
   nodo->sgt = NULL;
   return nodo;
}


/*  CREAR PILA  */
TPila *crearPila()
{  TPila *Pila = (TPila*)malloc(sizeof(TPila));
   Pila->cabeza = NULL;
   return Pila;
}


/*  FUNCION INSERTAR  ( PUSH )  */
void Push(TPila *Pila, int x)
{  TNodo *Nodo = crearNodo(x);
   Nodo->sgt = Pila->cabeza;  
   Pila->cabeza = Nodo;
}


/*  FUNCION ELIMINAR ( POP )  */
void Pop(TPila *Pila)
{  TNodo *p=NULL;
   if(Pila->cabeza!=NULL)
   {  
       p=Pila->cabeza;              
       Pila->cabeza=p->sgt;
       free(p);
   }
}


/*  FUNCION IMPRIMIR  */
void Imprime(TPila *Pila)
{  TNodo *p=Pila->cabeza;
   int i=1;
   while(p!=NULL)
   {  
      cout<<endl<<"\t\t      Posicion ["<<i<<"] : "<<p->dato;  
      i++;
      p=p->sgt;
   }
}


/*  FUNCION TOPE  */
void Tope(TPila *Pila)
{  cout<<endl;  
   cout<<"\t\t      El Tope de La Pila Es : "<<Pila->cabeza->dato;
   cout<<endl<<endl;
}



/*  MENU PRINCIPAL  */
int main()
{  system("color 2F");
   TPila *P=crearPila();
   int N,i=0;
   int opcion;
   cout<<"\n\n\n\n\n\n";
   cout<<endl<<"\t      ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
   cout<<endl<<"\t      º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
   cout<<endl<<"\t      º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
   cout<<endl<<"\t      º               Laboratio 06 - PILAS                 º  ";
   cout<<endl<<"\t      º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
   cout<<endl<<"\t      ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  \n"<<endl;
   cout<<endl<<"\t\t >> Presione cualquier tecla para continuar... ";
   getch();
   system("CLS");
 
   while(1)
   {
         
   cout<<"\n\n";  
   cout<<endl<<"\t\t                  MENU PRINCIPAL ";
   cout<<endl<<"\t\t                ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ";
 
   cout<<endl<<"\t\t DISENIE E IMPLEMENTE LOS SIGUIENTES ALGORITMOS: ";
   cout<<endl<<"\t\tÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ";

      cout<<endl;      
      cout<<endl<<"\t\t\tÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ";
      cout<<endl<<"\t\t\tº 1.  PUSH - Insertar Pila     º ";
      cout<<endl<<"\t\t\tº 2.  Imprimir Pila            º ";
      cout<<endl<<"\t\t\tº 3.  POP - Eliminar Pila      º ";
      cout<<endl<<"\t\t\tº 4.  Tope de la Pila          º ";
      cout<<endl<<"\t\t\tº 5.  Salir                    º ";
      cout<<endl<<"\t\t\tÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ \n\n";  

      do
      {
        cout<<"\t\t >> Elija una opcion: ";
        cin>>opcion;
      }
   
      while(opcion < -10000 || opcion > 10000);


      switch(opcion)
      {
           case 1: i++;
                   cout<<endl<<"\t\t      Ingrese ["<<i<<"] elemento: ";
                   cin>>N;
                   Push(P,N);
                   cout<<"\n\t\t      El elemento a sido almacenado...\n\n";
                   cout<<"\t\t Presione una tecla para continuar... ";
                   getch();
                   system("cls");
                   break;
                 
           case 2: Imprime(P);
                   cout<<endl<<endl;
                   cout<<"\t\t Presione una tecla para continuar... ";
                   getch();
                   system("cls");      
                   break;
                                       
           case 3: cout<<endl;
                   Pop(P);
                   cout<<"\t\t      * Se Elimino el Tope; osea el ultimo elemento";
                   cout<<"\n\t\t        ingresado ubicado en la Posicion [1] ";    
                   cout<<endl<<endl;
                   cout<<"\t\t Presione una tecla para continuar... ";
                   getch();
                   system("cls");          
                   break;
               
           case 4: cout<<endl;    
                   Tope(P);
                   cout<<endl;
                   cout<<"\t\t Presione una tecla para continuar... ";
                   getch();
                   system("cls");
                   break;

           case 5: system("cls");
                   cout<<"\n\n\n\n\n\n\n\n\n\n\n\t\t      Visita www.infobiks.blogspot.com ";
                   getch();
                   exit(1);
                   break;
               
           default:cout<<endl;        
                   cout<<"\t\t     La Opcion No es Valida !!!!!!!!!";
                   cout<<endl<<endl;
                   cout<<"\t\t Presione una tecla para continuar... ";
                   getch();
                   system("cls");
                   break;
      }      
   }                    
}

No hay comentarios.:

Publicar un comentario