Cap 8 - Filas de Prioridade-4spp

Cap 8 - Filas de Prioridade-4spp - Filas de Prioridade...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Filas de Prioridade Estrutura de Dados 2 TAD Fila de Prioridade Uma fila de prioridade armazena uma coleo de itens . Cada item um par (chave, elemento). Principais mtodos do TAD: ! insertItem ( k , x ): insere um item com chave k e elemento x . ! Item removeMin (): remove da fila e retorna o item com menor chave. Mtodos adicionais: ! Item min (): retorna uma cpia do item com menor chave sem remov-lo da fila . ! size (), isEmpty (). Aplicaes: ! Fila de espera de vos lotados. ! Listas de espera em geral (e.g. transplantes). ! Ordenao. Estrutura de Dados 3 TAD Item Um item em uma fila de prioridade simplesmente um par chave-elemento. Filas de prioridade armazenam itens para permitir inseres e remoes eficientes baseadas em chaves. Mtodos: ! Objeto key (): retorna a chave do item. ! Objeto element (): retorna o elemento associado ao item. Na forma de uma interface Java: public interface Entry { public Object key(); public Object element(); } Estrutura de Dados 4 Implementao Java public class Item implements Entry { private Object key, elem; protected Item (Object k, Object e) { key = k; elem = e; } // construtor public Object get key () { return key; } public Object get element () { return elem; } public void setKey (Object k) { key = k; } public void setElement (Object e) { elem = e; } } Estrutura de Dados 5 Chaves e Relao de Ordem Total Em uma fila de prioridade, chaves podem ser objetos arbitrrios para os quais uma ordem definida. Chaves podem ser bem mais complexos que um simples valor numrico. Dois itens distintos em uma fila de prioridade podem ter chaves iguais. Definio matemtica de uma relao de ordem total ( ! ) : ! Propriedade Reflexiva: a ! a ! Propriedade Anti-simtrica: a ! b e b ! a " a = b ! Propriedade Transitiva: a ! b e b ! c " a ! c Isso evita ambiguidades e contradies ao ordenar itens Estrutura de Dados 6 TAD Comparador Um comparador encapsula a ao de comparar dois objetos de acordo com uma dada relao de ordem total. Uma fila de prioridade genrica deve receber um comparador para as chaves que ir utilizar. O comparador acionado pela fila de prioridade e recebe desta as chaves a serem comparadas. O mtodo primrio de um TAD comparador: ! compare (a , b): retorna um inteiro i tal que i < 0 se a < b , i = 0 se a = b, e i > 0 se a > b ; um erro ou exceo ocorre se a e b no podem ser comparados. Mtodos adicionais (a resposta um valor booleano): ! isLessThan (a,b) ! isLessThanOrEqualTo (a,b) ! isEqualTo (a,b) ! isGreaterThan (a,b) ! isGreaterThanOrEqualTo (a,b) ! isComparable (a) Estrutura de Dados 7 Exemplo de Comparador Comparao Lexicogrfica de pontos 2D: /** Comparator for 2D points under the standard lexicographic order. */ public class Lexicographic implements Comparator { int xa, ya, xb, yb; public int compare(Object a, Object b) throws ClassCastException { xa = ((Point2D) a).getX(); ya = ((Point2D) a).getY(); xb = ((Point2D) b).getX(); xb = ((Point2D) b)....
View Full Document

Page1 / 9

Cap 8 - Filas de Prioridade-4spp - Filas de Prioridade...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online