viernes, 18 de febrero de 2011

Laboratorio07 - Colas


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


/* Colas */

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

using namespace std;


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


typedef struct Cola /// Estructura Cola
{  TNodo *frente;
   TNodo *final;
}TCola;


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


/*  CREAR COLA  */
TCola *crearCola()
{  TCola *Cola = (TCola*)malloc(sizeof(TCola));
   Cola->frente = NULL;
   Cola->final = NULL;
   return Cola;
}


/*  FUNCION INSERTAR (FIRST-IN)  */
void Poner(TCola *cola, int x)
{  TNodo *nodo=crearNodo(x);
   if(cola->final==NULL)
      cola->frente=nodo;
   else
      cola->final->sgt=nodo;
      cola->final=nodo;
}


/*  FUNCION ELIMINAR (FIRST-OUT)  */
void Quitar(TCola *cola)
{  TNodo *p=NULL;
   if(cola->frente != NULL)
   {  p=cola->frente;
      cola->frente = p->sgt;
      if(cola->frente == NULL)
         cola->final = NULL;
         free(p);
   }
}



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


/*  FUNCION FRENTE  */
void Frente(TCola *Cola)
{  cout<<endl;  
   cout<<"\t\t      El Frente de La Cola Es : "<<Cola->frente->dato;
   cout<<endl<<endl;  
}


/*  MENU PRINCIPAL  */
int main()
{  system("color 0B");
   TCola *P=crearCola();
   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 07 - COLAS                 º  ";
   cout<<endl<<"\t      º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
   cout<<endl<<"\t      ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  \n"<<endl;
   cout<<endl<<"\t\t >> Presione cualqier 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.  FIRST-IN: Insertar Cola     º ";
      cout<<endl<<"\t\t\tº 2.  Imprimir Cola               º ";
      cout<<endl<<"\t\t\tº 3.  FIRST-OUT: Eliminar Cola    º ";
      cout<<endl<<"\t\t\tº 4.  Frente de la Cola           º ";
      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;
                 Poner(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:  Imprimir(P);
                 cout<<endl<<endl;
                 cout<<"\t\t Presione una tecla para continuar... ";
                 getch();
                 system("cls");
                 break;
                       
        case 3:  cout<<endl;
                 Quitar(P);
                 cout<<"\t\t      * Se Elimino el Frente; osea el primer 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;    
                 Frente(P);
                 cout<<endl;
                 cout<<"\t\t Presione una tecla para continuar... ";
                 getch();
                 system("cls");
                 break;

        case 5:  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;
      }
   }                    
   cout<<endl<<endl;
   system("PAUSE");
 }

No hay comentarios.:

Publicar un comentario