You are on page 1of 10

Tema 6: Colas

Docente : Hector Xavier Limon Riano


email: xavier120@hotmail.com
web: http://estructurasfei.wordpress.com
Introduccion

Una cola es una estructura de datos compuesta (estructurada)


Es lineal
Al igual que una pila, es una estructura de datos restringid
Es una estructura de datos con un comportamiento FIFO
(first-in first-out)
Los elementos se agregan al final de la cola y se sacan desde
el inicio de esta
Introduccion

La colas son utiles en aplicaciones donde se necesita tomar turnos:


Cola de impresion
Cola de procesos
Atencion a clientes en servidor web
Colas

Una cola tiene dos elementos a traves de los cuales se manipula la


cola:
Frente: es una referencia al primer elemento de la cola
Final: es una referencia al ultimo elemento de la cola
Colas

Las colas pueden ser:


Dinamicas
Estaticas
Colas Dinamicas

Una cola puede describirse mediante una clase


Los elementos de la cola son nodos (de la misma clase que lo
nodos que se vio en el tema de pilas)
La cola tiene un apuntador de tipo nodo llamado frente
La cola tambien tiene un apuntador de tipo nodo llamado fin
Colas Dinamicas

Operaciones basicas:
isEmpty: regresa true si la cola esta vaca
mete: agrega un elemento al final de la cola
saca: saca el elemento que esta al frente y devuelve su valor
peek: devuelve el valor de elemento del frente sin sacarlo
Colas Dinamicas

En los siguientes ejercicios se debe seguir un comportamiento de


cola
Ejecicios
Agregar un metodo a ColaDina para que se impriman todos
los elementos de la cola
Agregar un metodo a ColaDina para verificar si la cola
contiene un valor dado
Agregar un metodo a ColaDina para invertir todos los valores
de la cola
Hacer una funcion que recibe dos colas ordenadas y regresa
una sola cola ordenada con los elementos de ambas colas
Colas Estaticas

Una cola estatica tiene internamente un arreglo de un tamano


dado (lo que quiere decir que la cola solo puede guardar ese
numero de elementos)
Se utilizan 2 ndices: frente y final
Si la cola esta vaca: frente = 0 y final = 0
Se necesita una propiedad para saber el numero de elementos
que tiene la cola
Se necesita una propiedad para saber el tamano maximo del
arreglo interno
El comportamiento del arreglo interno es circular
Colas Estaticas

Operaciones basicas:
isEmpty: regresa true si la cola esta vaca
mete: agrega un elemento al final de la cola
saca: saca el elemento que esta al frente y devuelve su valor
peek: devuelve el valor de elemento del frente sin sacarlo

You might also like