Colas
Definición: ¿Qué es una Cola?
El diccionario de la Real Academia Española define una acepción de cola como “hilera de personas que esperan turno para alguna cosa”; una hilera de vehículos esperando pasar una frontera, una hilera de personas para entrar en un teatro, o una cola de trabajos en un sistema de computadora que espera la disponibilidad de algún dispositivo de salida tal como una impresora.
En cada uno de estos ejemplos, los elementos se atienden en el orden en que llegaron; es decir, el primer elemento en entrar (primero de la cola) es el primero en ser atendido (salir). La cola es una estructura FIFO (First In First Out)
Ejemplos de colas en Computación
- Cola en el Spooler de Impresión.
- Cola en la espera de instrucciones a seguir.
- Cola en la recepción de datos.
- Etc.
Evolución de la Cola
Operaciones Básicas de la Cola
- Inicializar la cola.
- Añadir un elemento al final de la cola.
- Eliminar el primer elemento de la cola.
- Vaciar la cola.
- Verificar el estado de la cola: Vacía / Llena.
Implementación de las funciones con Punteros
//Declaraciones generales
Estructura tipo_nombre
…………..
…………..
tipo_nombre siguiente
Fin de estructura
tipo_nombre à primero, aux, ultimo
tipo cantidad à tope
función inicializar
primero = nulo
ultimo = nulo
fin función
lógica función vacía
si ultimo = nulo
devolver (verdadero)
si no
devolver (falso)
fin función
lógica función llena
si primero = tope
devolver (verdadero)
si no
devolver (falso)
fin función
función eliminar
dato = primero.dato
aux = primero
primero = aux.siguiente
liberar(aux)
fin función
función añadir
reservar (aux)
aux.dato = dato
ultimo.siguiente = aux
ultimo = aux
fin función
Ejemplo de Cola:
#include <iostream.h> #include <conio.h> #include <string.h> #include <stdlib.h> #include <stdio.h> struct datos { int dato; datos *s; }*p,*aux,*u; void insertar (int dat); void borrar (); void listar (); main() { int opc,y; do { cout<<"\n1. Insertar"; cout<<"\t2. Borrar"; cout<<"\t3. Listar"; cout<<"\t4. Salir"; cout<<"\n Ingrese opcion: ";cin>>opc; switch(opc) { case 1: cout<<"Ingrese dato: "; cin>>y; insertar(y); cout<<"\nDato insertado!!"; break; case 2: borrar(); break; case 3: listar(); break; case 4: exit(1); default: cout<<"\n Opcion no valida!!"; break; } }while(opc); } void insertar (int dat) { aux=new(datos); aux->dato=dat; if(u) { u->s=aux; aux->s=NULL; u=aux; } else { p=u=aux; } } void borrar() { if(p) { aux=p; cout<<"\nElimino a " <<p->dato; p=aux->s; delete(aux); } else { cout<<"\n No hay datos"; } } void listar() { int i; if(!u) { cout<<"\n No hay datos en la cola"; return; } aux=p; while(aux) { cout<<"\n"<<++i<<" - "<<aux->dato; aux=aux->s; } }