Está en la página 1de 20

Estructura de Datos

TDA COLAS
Cola
Es un conjunto ordenado de elementos del que pueden
suprimirse estos, de un extremo (llamado la parte
delantera) y en el que pueden insertarse elementos del
otro extremo (llamado la parte posterior de la cola).
El primer elemento insertado en una cola es el primer
elemento que se suprime. Por esta razn, se conoce a la
Cola como un lista tipo FIFO (primero en entrar, el
primero en salir).

Una cola es una estructura lineal, en la cual los
elementos slo pueden ser adicionados por uno de
sus extremos y eliminados o consultados por el otro.

Tambin hay que tener presente, que el nico
elemento visible en una cola es el primero y
mientras ste no haya salido (eliminado), no es
posible tener acceso al siguiente.
Cola
Ejemplos:
Una fila de un banco
Una parada de autobs
Automviles esperando en una caseta de peaje.
Debemos tener ciertas consideraciones al implementar
una solucin para las operaciones sobre una cola de
datos:
La cola est vaca inicialmente
La operacin insert puede ejecutarse siempre, pues no hay
lmite en la cantidad de elementos que puede contener una
cola.
La operacin remove slo puede aplicarse si la cola no est
vaca: no hay forma de remover un elemento de una cola que
no contiene elementos.


A B C
B C
B C
D E
Parte delantera
Parte delantera
Parte delantera
Parte posterior
Parte posterior
Parte posterior
Operaciones:
A
B A
A B C
B C
B C
D
C
D
1.- Insertar A
2.- Insertar B
Estado de la cola:
3.- Insertar C
4.- Remover Elemento
5.- Insertar D
6.- Remover Elemento
Inicio: Cola Vaca
TIPOS DE COLAS:

Cola simple: Estructura lineal donde los elementos
salen en el mismo orden en que llegan.

Cola circular: Representacin lgica de una cola simple
en un arreglo.

Cola de Prioridades: Estructura lineal en la cual los
elementos se insertan en cualquier posicin de la cola y
se remueven solamente por el frente.

Cola Doble (Bicola): Estructura lineal en la que los
elementos se pueden aadir o quitar por cualquier
extremo de la cola (cola bidireccional).
Implementacin de Colas
Arreglo
con frente fijo.
con frente movible.
circular.
Listas ligadas
Las colas pueden ser representadas en arreglos
de una dimensin (vector) manteniendo dos
variables que indiquen el FRENTE y FINAL de
los elementos de la cola.
A F S D Z
Frente Final
0 1 2 3 4 5
Representacin usando arreglos
Cuando la cola esta vaca las variables frente y final
son nulos y no es posible remover elementos.
Cuando la cola esta llena ( frente = 0 y final = n-1)
no es posible insertar elementos nuevos a la cola.
Cuando se remueven elementos el frente puede
incrementarse para apuntar al siguiente elemento de la
cola (implementacion con frente movil) o los elementos
en la cola pueden desplazarse una posicion adelante
(implementacin con frente fijo)
Recuperacin de espacio: Cuando no hay espacios
libres al final del arreglo los elementos pueden ser
desplazados para desocupar posiciones en un extremo
del arreglo o se puede manejar una estructura circular.
Cola secuencial


. . .
0 1 2 3 4 N-1

ndice del ndice del
primer elemento ltimo elemento

Cantidad fsica
de elementos

No hay correspondencia entre la posicin del ltimo nodo y la cantidad de nodos de la cola.

La condicin de cola llena y de cola vaca, no se pueden verificar haciendo uso del ndice del
arreglo.
Ejemplo: Suponer que usamos un arreglo de 5
posiciones. Usando la representacin de frente fijo
y frente movible.
A B C
Frente
Final
Al remover un elemento:
B C
Frente Final
B C
Frente Final
Frente fijo Frente movible
Insertar elemento D:
B C D
Frente Final
B C
Frente Final
B C D
B C
Frente Final
Frente Final
Insertar elemento E:
B C D E
Frente Final
Insertar elemento F:
B C D E F
Frente Final
Insertar elemento G: Error: Cola llena!!!!
B C D E
Frente Final
B C D E F
Frente Final
Cola circular

0 1
N-1 2
.
. 3

13 4

12 5

11 6
10 7
9 8

La cola circular propone tratar el arreglo como un crculo donde cuando aLength se hace igual
a aSize, el siguiente elemento es el de ndice 0. Esto permite utilizar todos los espacios que
quedan libres en el arreglo luego de realizar eliminaciones de nodos.
Cola Circular
Es una representacin
lgica de la cola en un
arreglo.
El frente y final son
movibles.
Cuando el frente o final
llegan al extremo se
regresan a la primera
posicin del arreglo.
C D E
Frente Final
F C D E
Frente Final
C D
Frente
Final
B C D
Frente Final
Remover
Insertar E
Insertar F
Cola
inicial
Representacin de colas:
Usando memoria esttica: arreglos con tamao
fijo y frente fijo o movible o representacin
circular.






Usando memoria dinmica: Listas ligadas.

B C D E F Frente
Final
0 1 2 3 4
B C D
Frente
Final
E F
Cola
Debemos tener ciertas consideraciones al implementar
una solucin para las operaciones sobre una cola de
datos:
El resultado de un intento no vlido de remover un elemento
de una cola vaca se denomina subdesbordamiento.
La operacin vaca siempre es aplicable.
La representacin de una cola como un tipo abstracto de datos
es directa.
Una manera de representar en java, es usar un arreglo
para contener los elementos de la cola y emplear dos
variables, front (parte delantera) y rear (parte posterior)
para contener las posiciones dentro del arreglo de los
elementos primero y ltimo de la cola.
TDA Cola
En muchos casos, es importante poder encontrar
y/o encontrar el elemento ms recientemente
insertado.
Pero en otras ocasiones, no slo no es importante,
sino que es la forma errnea de hacerlo.
Por ejemplo, en un sistema nultiprocesador,
cuando los trabajos se mandan a una impresora,
esperamos que el trabajo menos reciente o ms
viejo sea impreso antes.
Esto no es solamente justo, sino que es necesario
para garantizar que el primer trabajo no espera
para siempre.
Mtodos
insertar( x ) --> Inserta x
eliminar( ) --> Elimina el primer elemento
info( ) --> Retorna el primer elemento
esVacia( ) --> Retorna true si no existen
elementos ; false en caso contrario
vaciar( ) --> Elimina todos los elementos

También podría gustarte