Una COLA es una estructuras de datos caracterizada por ser una secuencia de
elementos en la que la operación de inserción se realiza por un extremo y la operación
de extracción por el otro. También se le llama estructura FIFO ( primer elemento en
entrar será también el primero en salir).
OPERACIONES BASICAS
*Crear: se crea la cola vacía.
*Encolar (añadir elemento): se añade un elemento a la cola.
Dejando claro que seañade al final.
*Desencolar (Eliminar elemento): se elimina el primer elemento que entro en la cola.
*Frente (consultar): se devuelve el primer elemento que entro en la cola.
*Frente (consultar): se devuelve el primer elemento que entro en la cola.
INICIALIZADORAS
Nombre: Inicializar.
Funcion: Inicializar la estructura.
pre: nada
post: c= { }.
CREADORAS
Nombre: Encolar
Funcion: Insertar un elemento en la cola.
pre: C={ },e
C={e1,e2,e3...en}e
post: C= {e}
C={e1,e2,e3...en+1}
Nombre: Desencolar
Funcion: Elimina elementos de la cola.
pre: C= { }
C= {e1,e2,e3......e n}
post: Cola vacia.
C= {e1,e2,e3......e n -1}
ANALIZADORAS
Nombre: Consultar
Funcion: Retorna el primer elemento.
pre: C= { }
C= {e1,e2,e3.....e n}
post: Cola vacia.
C= e1.
Nombre: Recorrer cola
Funcion: Devuelve los elementos de la cola.
pre: C= { }, e
C= {e1,e2,e3.....e n},e
post: Cola vacia
Elemento encontrado.
C={e1,e2,e3...en}
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
// Estructura
struct nodoCola
{
int dato;
nodoCola *sig;
};struct nodoCola *ult;
//Menu
int menu()
{
int op;
clrscr();
cout<<"\n\t\tMENU PRINCIPAL";
cout<<"\n\n1.Inicializar cola";
cout<<"\n2. Encolar";
cout<<"\n3. Desencolar";
cout<<"\n4. Recorrer";
cout<<"\n5. Salir";
cout<<"\n\n\t\t--> Elija Opcion: ";
cin>>op;
return op;
}
//Definicion de funciones
void inicializar(struct nodoCola **, struct nodoCola **);
void desencolar(struct nodoCola **,struct nodoCola **);
void recorrer(struct nodoCola **, struct nodoCola **,int x);
void encolar(struct nodoCola **, struct nodoCola **);
//Funcion inicializar
void inicializar(struct nodoCola **prim,struct nodoCola **ult)
{ clrscr();
*prim=NULL;
cout<<"\nCola Inicializada.";
getch();
}
//Funcion Encolar
void encolar(struct nodoCola **prim, struct nodoCola **ult,int dat)
{
struct nodoCola *aux;
aux=new nodoCola;
if(aux==NULL)
{
cout<<"\nMemoria Insuficiente. ";
getch();
}
aux->dato=dat;
aux->sig=NULL;
if(*prim==NULL)
{ *prim=aux;
*ult=aux;
}
else
{ (*ult)->sig=aux;
*ult= aux;
}
getch();
}
//Funcion Desencolar
void desencolar(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
struct nodoCola *aux;
if(*prim==NULL)
cout<<"COLA Vacia";
else
{
aux=*prim;
cout<<"Elemento eliminado: "<<(*prim)->dato;
*prim=aux->sig;
delete aux;
}
getch();
}
//Funcion recorrer
void recorrer(struct nodoCola **prim, struct nodoCola **ult,int dato)
{clrscr();
struct nodoCola *aux;
if(*prim==NULL)
cout<<"\nCOLA Vacia. ";
else
{
aux=*prim;
while(aux!=NULL)
{
cout<<"Elemento: "<<aux->dato<<"\n";
aux=aux->sig;
}
}
getch();
}
// principal
int main()
{
struct nodoCola *prim,*ult;
int dat,opc;
do
{ opc=menu();
switch(opc)
{
case 1:{inicializar(&prim, &ult);break;}
case 2:{ cout<<"\nEntre el dato: ";
cin>>dat;
encolar(&prim, &ult,dat);
break;
}
case 3:{desencolar(&prim, &ult);break;}
case 4: {recorrer(&prim, &ult,dat);break;}
}
}
while(opc!=5);
return 0;
}
Nombre: Inicializar.
Funcion: Inicializar la estructura.
pre: nada
post: c= { }.
CREADORAS
Nombre: Encolar
Funcion: Insertar un elemento en la cola.
pre: C={ },e
C={e1,e2,e3...en}e
post: C= {e}
C={e1,e2,e3...en+1}
Nombre: Desencolar
Funcion: Elimina elementos de la cola.
pre: C= { }
C= {e1,e2,e3......e n}
post: Cola vacia.
C= {e1,e2,e3......e n -1}
ANALIZADORAS
Nombre: Consultar
Funcion: Retorna el primer elemento.
pre: C= { }
C= {e1,e2,e3.....e n}
post: Cola vacia.
C= e1.
Nombre: Recorrer cola
Funcion: Devuelve los elementos de la cola.
pre: C= { }, e
C= {e1,e2,e3.....e n},e
post: Cola vacia
Elemento encontrado.
C={e1,e2,e3...en}
SEUDOCODIGO
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
// Estructura
struct nodoCola
{
int dato;
nodoCola *sig;
};struct nodoCola *ult;
//Menu
int menu()
{
int op;
clrscr();
cout<<"\n\t\tMENU PRINCIPAL";
cout<<"\n\n1.Inicializar cola";
cout<<"\n2. Encolar";
cout<<"\n3. Desencolar";
cout<<"\n4. Recorrer";
cout<<"\n5. Salir";
cout<<"\n\n\t\t--> Elija Opcion: ";
cin>>op;
return op;
}
//Definicion de funciones
void inicializar(struct nodoCola **, struct nodoCola **);
void desencolar(struct nodoCola **,struct nodoCola **);
void recorrer(struct nodoCola **, struct nodoCola **,int x);
void encolar(struct nodoCola **, struct nodoCola **);
//Funcion inicializar
void inicializar(struct nodoCola **prim,struct nodoCola **ult)
{ clrscr();
*prim=NULL;
cout<<"\nCola Inicializada.";
getch();
}
//Funcion Encolar
void encolar(struct nodoCola **prim, struct nodoCola **ult,int dat)
{
struct nodoCola *aux;
aux=new nodoCola;
if(aux==NULL)
{
cout<<"\nMemoria Insuficiente. ";
getch();
}
aux->dato=dat;
aux->sig=NULL;
if(*prim==NULL)
{ *prim=aux;
*ult=aux;
}
else
{ (*ult)->sig=aux;
*ult= aux;
}
getch();
}
//Funcion Desencolar
void desencolar(struct nodoCola **prim, struct nodoCola **ult)
{ clrscr();
struct nodoCola *aux;
if(*prim==NULL)
cout<<"COLA Vacia";
else
{
aux=*prim;
cout<<"Elemento eliminado: "<<(*prim)->dato;
*prim=aux->sig;
delete aux;
}
getch();
}
//Funcion recorrer
void recorrer(struct nodoCola **prim, struct nodoCola **ult,int dato)
{clrscr();
struct nodoCola *aux;
if(*prim==NULL)
cout<<"\nCOLA Vacia. ";
else
{
aux=*prim;
while(aux!=NULL)
{
cout<<"Elemento: "<<aux->dato<<"\n";
aux=aux->sig;
}
}
getch();
}
// principal
int main()
{
struct nodoCola *prim,*ult;
int dat,opc;
do
{ opc=menu();
switch(opc)
{
case 1:{inicializar(&prim, &ult);break;}
case 2:{ cout<<"\nEntre el dato: ";
cin>>dat;
encolar(&prim, &ult,dat);
break;
}
case 3:{desencolar(&prim, &ult);break;}
case 4: {recorrer(&prim, &ult,dat);break;}
}
}
while(opc!=5);
return 0;
}
