COLAS Curso de Introduccin a la Computacin Colas

  • Slides: 7
Download presentation
COLAS Curso de Introducción a la Computación

COLAS Curso de Introducción a la Computación

Colas La cola es una colección ordenada de elementos de la que se pueden

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

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

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

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

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

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