COLAS Curso de Introduccin a la Computacin Colas







- Slides: 7

COLAS Curso de Introducción a la Computación

Colas La cola es una colección ordenada de elementos de la que se pueden borrar elementos en un extremo (llamado el frente de la cola) o insertarlos en el otro extremo (llamado el final de la cola). Una cola formada por los elementos A, B y C, en (b) se ha eliminado A y en (c) se han agregado D y E.

Operaciones con colas Las operaciones básicas son: insert(q, x); que inserta un elemento x en la cola y i = remove(q); que elimina un elemento de la cola y lo almacena en i. insert(q, A) Las operaciones realizadas en la cola de la figura anterior son: insert(q, D) insert(q, B) insert(q, C) i=remove(q) insert(q, E)

Representación La cola se representa mediante dos apuntadores; front y rear. Si q es una cola, q. front será el frente y q. rear final. En una cola vacía tanto q. front como q. rear deben ser iguales a nil.

Implementación ligada de colas Una cola se puede implementar utilizando una lista ligada. La cola consistiría de una lista y dos apuntadores q. front y q. rear. La operación x=remove(q) es análoga a x=pop(s), con el apuntador q. front reemplazando a s. Sin embargo cuando se elimina el último elemento de la cola, se debe asignar nil a q. rear ya que solo así se tendrá una cola vacía.

Operación Remove FUNCION REMOVE(Q: COLA) REGRESA QUEUEITEM 1. P ¬ Q. FRONT 2. X ¬ INFO(P) 3. Q. FRONT ¬ NEXT(P) 4. SI Q. FRONT=NIL ENTONCES a. Q. REAR ¬ NIL 5. FREENODE(P) 6. REGRESA X

Operación Insert Al insertar un elemento en una cola vacía hay que actualizar el apuntador q. front. SUBRUTINA INSERT(Q: COLA, X: QUEUEITEM) 1. P ¬ GETNODE 2. INFO(P) ¬ X 3. NEXT(P) ¬ NIL 4. SI Q. REAR=NIL ENTONCES a. Q. FRONT ¬ P 5. SINO a. NEXT(Q. REAR) ¬ P 6. Q. REAR ¬ P