Colas de Prioridad El TDA cola de prioridad

  • Slides: 5
Download presentation
Colas de Prioridad • El TDA cola de prioridad • Implementación de una cola

Colas de Prioridad • El TDA cola de prioridad • Implementación de una cola de prioridad con una secuencia • Ordenamiento elemental • Asuntos en ordenamiento 1

Llaves y Relaciones de Orden Total • Una Cola de Prioridad clasifica sus elementos

Llaves y Relaciones de Orden Total • Una Cola de Prioridad clasifica sus elementos por la key con una relación de orden total • Llaves: Cada elemento tiene su propia llave Las llaves no son necesariamente únicas • Relación de Orden Total, indicado por Reflexiva: k k Antisimetria: si k 1 k 2 y k 2 k 1, entonces k 1 k 2 Transitiva: si k 1 k 2 y k 2 k 3, entonces k 1 k 3 • Una Cola de Prioridad soporta estos métodos fundamentales sobre pares de elementos llave: min() insert. Item(k, e) remove. Min() 2

Ordenación con una Cola de Prioridad • Una Cola de Prioridad P se puede

Ordenación con una Cola de Prioridad • Una Cola de Prioridad P se puede usar para ordenar una secuencia S mediante: – insertando los elementos de S en P con una serie de operaciones insert. Item(e, e) – extrayendo los elementos de P en orden creciente y colocandolos nuevamente en S con una serie de operaciones remove. Min() Algorithm Priority. Queue. Sort(S, P): Input: Secuencia S con n elements, y una cola de prioridad P Output: Secuencia S ordenada por una relación de orden total while !S. is. Empty() do e S. remove. First() P. insert. Item(e, e) while P is not empty do e P. remove. Min() S. insert. Last(e) 3

TDA para Cola de Prioridad • Una cola de prioridad P soporta los siguientes

TDA para Cola de Prioridad • Una cola de prioridad P soporta los siguientes métodos: -size(): Devuelve el número de elementos en P -is. Empty(): Comprueba si P está vacía -insert. Item(k, e): Inserta un nuevo elemento e con llave k en P -min. Element(): Devuelve (sin borrar) un elemento de P con menor llave; ocurre un error si P está vacía. -min. Key(): Devuelve la menor llave en P; ocurre un error si P está vacía -remove. Min(): Extrae de P y devuelve el elemento con menor llave; ocurre un error si P está vacía 4

Comparadores • La forma más general y reusable de una cola de prioridad hace

Comparadores • La forma más general y reusable de una cola de prioridad hace uso de objetos comparadores. • Objetos Comparadores son externos a las llaves que se comparan y comparan dos objetos. • El TDA comparador incluye: -is. Less. Than(a, b) -is. Less. Than. Or. Equal. To(a, b) -is. Greater. Than(a, b) -is. Greater. Than. Or. Equal. To(a, b) -is. Comparable(a) 5