Colas

  1. Aplicaciones de las Colas
  2. Representación de las Colas
  3. Operaciones
  4. Insertar Elementos
  5. Eliminación de elementos
  6. Verificar si la Cola esta vacía
  7. Aprovechamiento de la memoria

Colas: Es una estructura lineal de datos. Una cola es un grupo ordenado de elementos homogéneos en el que los nuevos elementos se añaden por un extremo (el final) y se quitan por el otro extremo (el frente). En las colas el elemento que entró primero sale también primero, por ello se las llama como listas FIFO (first – in, first – out) "primero en entrar, primero en salir".

La diferencia con las pilas es en el modo de entrada / salida de datos; en las colas se realizan las inserciones al final de la lista, no al principio.

Por eso, se usan para almacenar datos que necesitan ser procesados según el orden de llegada.

C= C (1), C(2), ......., C(N)

Las eliminaciones se realizan al principio de la lista frente (front), y las inserciones se realizan en el otro extremo final (rear).

Para ver el gráfico seleccione la opción "Descargar" del menú superior

Aplicaciones de las Colas

Las Colas también 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 añade su petición a su "cola de trabajo".

Cuando su petición 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 demás. El sistema operativo mantiene colas para peticiones de imprimir, leer o escribir en cada uno de estos dispositivos.

Representación de las Colas

Se las puede representar por listas enlazadas o por arrays

C= Q(1), Q(2)......., Q(n).

En cualquier caso se necesitan dos punteros

  • frente (f)
  • final (r)

y la lista o array de n elementos (LONGMAX)

parte no utilizada de la lista Cola parte no utilizada de la lista

Para ver el gráfico seleccione la opción "Descargar" del menú superior

  • Representación de una Cola, mediante un array.

100

264

119

48

frente final

  • Representación de una Cola mediante una lista enlazada

1 2 3 4

100

264

119

48

frente final

Las operaciones que se pueden realizar con una cola son:

  1. Acceder al primer elemento de la Cola
  2. Añadir un elemento al final de la Cola
  3. Eliminar el primer elemento de la Cola
  4. Vaciar una Cola
  5. Verificar el estado de la Cola: vacía, Llena.

Operaciones:

LimpiarPila (Cola)

Función: Inicializa Cola al estado vacío

Entrada: Cola a inicializar

Precondiciones: Ninguna

Salida: Cola (inicializada)

Postcondiciones: Cola está vacía

ColaVacía (Cola)

Función: Indica si la Cola esta vacía

Entrada: Cola a ser comprobada

Precondiciones: Ninguna

Salida: Cola Vacía (indicador Booleano)

Postcondiciones: ColaVacía= (cola está vacía)

ColaLlena (Cola)

Función: Indica si esta llena

Entrada: Cola a ser comprobada

Precondiciones: Ninguna

Salida: Cola llena (indicador Booleano)

Postcondiciones: ColaLlena = (cola está llena)

InsCola (Cola, Nuevo Elemento)

Función: Añade Nuevo Elemento al final de la Cola

Entrada: Cola, Nuevo Elemento a ser añadido

Precondiciones: Hay espacio en la Cola

Salida: Cola (cambiada)

Postcondiciones: Cola = Cola original con Nuevo Elemento añadido al final

SupCola (Cola, ElemSuprimido)

Función: Quita el elemento del frente de la Cola y devuelve su valor como ElemSuprimido.

Entrada: Cola

Precondiciones: Cola no esta vacía

Salida: Cola (cambiada)

ElemSuprimido

Postcondiciones: Cola = Cola original con el frente quitado

ElemSuprimido = elemento frente de la cola original

Insertar Elementos

Definimos el array.

COLA = COLA(1), COLA(2), ...., COLA(n).

n = longitud máxima

f y r = punteros frente y final

x = elementos a insertar

procedimiento inserción

inicio

si r > = n

entonces escribir "desbordamiento de la pila"


sino r r + 1

si r > n


entonces r 1

finsi


COLA(r) x

finsi

{ poner el puntero f al valor 1, a fin de poder hacer eliminaciones posteriores }

si f = 0


entonces f 1

finsi

fin

Eliminación de elementos

El primer elemento introducido Q(n) que es el eliminado, se almacena en una variable auxiliar x, para eliminar se tendrá que verificar que la cadena este vacía.

Procedimiento eliminar

Inicio

{verificar cola vacía}

si f = 0

entonces escribir ‘cola vacía’


sino x cola (f)


f f + 1

si f > n


entonces f 1

finsi

finsi

{ verificar si la cola se ha quedado vacía y en ese caso dejar los puntero frontal y final en condiciones iniciales, cero}

si f = 0 {condición de pila vacía}


entonces f 0


r 0

finsi

fin

Verificar si la Cola esta vacía

Una operación muy útil es ver si la cola está vacía. Cola Vacía (Cola) devuelve True si la Cola está vacía y False en los demás casos. Ponemos SupCola cuando la cola no está vacía. Teóricamente ponemos siempre InsCola, porque en principio, una cola no tiene un tamaño limitado. Sin embargo, sabemos de nuestra experiencia con las pilas que ciertas implementaciones requiere que veamos si la estructura está llena antes de añadir otro elemento.

Aprovechamiento de la memoria

Las colas pueden necesitar cantidad de memoria sobre todo si se diseña con un gran numero de elementos. Para evitar este desperdicio de memoria, existe un procedimiento para diseñar las colas mediante una lista circular.

Para ver el gráfico seleccione la opción "Descargar" del menú superior

De tal forma que el elemento Q(1), quede a continuación de Q (n).

Los subalgoritmos (procedimientos) de inserción y eliminación de una cola circular se indican a continuación.

Héctor Estigarribia

hectorpyco[arroba]gmail.com

Comentarios

  • informacion
    Excelente información mi estimado, me sirvió de mucho. xD
    netowars  |  2008-04-30 07:43:27

Agregar un comentario


Trabajos relacionados

Ver mas trabajos de Programacion

   

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo en formato DOC desde el menú superior.


Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.