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