Sunteți pe pagina 1din 12

COLAS EN C++

Definicin:
Una cola es un tipo especial de lista abierta en la que slo se pueden insertar
nodos en uno de los extremos de la lista y slo se pueden eliminar nodos en el
otro. Adems, como sucede con las pilas, las escrituras de datos siempre son
inserciones de nodos, y las lecturas siempre eliminan el nodo ledo.
Este tipo de lista es conocido como lista FIFO (First In First Out), el primero en
entrar es el primero en salir.
Sintaxis:
struct nodo {
int dato;
struct nodo
*siguiente;
};
APLICACIONES DE LAS COLAS

Las Colas tambin se utilizan en muchas maneras en los sistemas operativos para
planificar el uso de los distintos recursos de la computadora. Uno de estos recursos
es la propia CPU (Unidad Central de Procesamiento).
Si esta trabajando en una sistema multiusuario, cuando le dice a la
computadora que ejecute un programa concreto, el sistema operativo aade su
peticin a su "cola de trabajo".
Cuando su peticin llega al frente de la cola, el programa solicitado pasa a
ejecutarse. Igualmente, las colas se utilizan para asignar tiempo a los distintos
usuarios de los dispositivos de entrada/salida (E/S), impresoras, discos, cintas y
dems. El sistema operativo mantiene colas para peticiones de imprimir, leer o
escribir en cada uno de estos dispositivos.
OPERACIONES BASICAS :

CREAR COLA: se crea la cola vaca.


ENCOLAR (aadir, entrar, insertar): se aade un elemento a la cola.
Se aade al final de esta.
DESENCOLAR (sacar, salir, eliminar): se elimina el elemento frontal
de la cola, es decir, el primer elemento que entr.
CONSULTAR: imprime todos los datos en la cola.
TIPOS DE COLAS:
COLAS DINAMICAS:
Cuando los limites de la cola se declaran dentro de la misma estructura.
Sintaxis:
struct nodo
{ int dato;
struct nodo *siguiente;
}*primero=NULL,*cola,*ultimo=NULL;
INSERTAR DATOS O ENCOLAR: Usamos una funcin. DESENCOLAR: Usamos una funcin.

void encolar(int elemento) void desencolar()


{ {
if(primero!=NULL){
struct nodo datos; cola=primero;
cola=new(nodo); cout<<"eliminado";
cola->dato=elemento; primero=cola->siguiente;
cola->siguiente=NULL; if(primero==NULL){
if(ultimo!=NULL){ cola=NULL;
ultimo->siguiente = cola; ultimo=NULL;
cola->siguiente= NULL; }
ultimo=cola; }
} else{
else{ cout<<"cola vacia"<<endl;
primero=ultimo=cola; }
}
}
RECORRER COLA: usamos una funcin vaco.
void recorrer()
{
cola =primero;
while(cola != NULL){
cout<<cola->dato<<endl;
cola=cola->siguiente;
}
getch ();
}
COLAS CIRCULARES:
Declaramos datos para todo el programa. Funcion encolar:
void encolar(int elemento)
{
if(n==colatam){

const int colatam=5; cout<<"cola llena";

int delante=0; }

int n=0; else{

int vcola[colatam]; int lugar=(delante+n)%colatam;


vcola[lugar]=elemento;
cout<<"el frente es"<<delante<<endl;
cout<<"cantidad de elemento"<<n<<endl;
n++;
cout<<"el
numero"<<elemento<<"encolado"<<endl;
getch ();
}
Funcion desencolar: Funcion recorrer:
void desencolar () void recorrer(){
{ clrscr(); int aux;
int num=vcola[delante]; aux=0;
cout<<"sale numero"<<num<<endl; while(aux!=colatam)
vcola[delante]=NULL; {
delante=(delante+1)%colatam; cout<<" "<<vcola[aux]<<endl;;
n--; aux++;
cout<<"el frente es "<<delante<<endl; }
cout<<"cantidad de elemento"<<n<<endl; getch();
clrscr(); }
}
GRACIAS POR SU
ATENSION

S-ar putea să vă placă și