Cap 9 - Dicionarios-4spp

Cap 9 - Dicionarios-4spp - Roteiro ! ! ! ! ! Dicionrios 6...

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

View Full Document Right Arrow Icon
Dicionários 1 Dicionários 6 9 2 4 1 8 < > = 24/03/12 Dicionários 2 Roteiro O TAD Dicionário Arquivos de Log Busca Binária Tabelas de Pesquisa Árvore de pesquisa binária ! Pesquisa ! Inserção ! Remoção ! Desempenho 24/03/12 Dicionários 3 O TAD Dicionário O TAD dicionário define uma coleção de pares elemento-chave passível de busca. As operações principais em um dicionário são busca, inserção, e remoção de itens. É possível ter vários itens com a mesma chave. Aplicações: ! agenda de endereços. ! autorizações de cartões de crédito. ! resolução de nomes (e.g., genesis.unisantos.br para endereços IP (e.g., 200.210.164.2). Métodos do TAD Dicionário: size (): número de itens no dicionário. isEmpty (): testa se o dicionário está vazio. ! findElement (k): se o dicionário tiver um item cuja chave é igual a k , então retorna o elemento, senão, retorna um elemento especial NO_SUCH_KEY. Se houver mais de um item com chave k devolve apenas um deles, arbitrariamente. ! insertItem (k, o): insere o item o com chave k no dicionário ! removeElement (k): se o dicionário possui um item com chave igual a k, então esse item será removido do dicionário e seu elemento devolvido, e se não existir, retorna um elemento especial NO_SUCH_KEY ! keys (), Elements (), findAllElements (k), removeAllElements (k). 24/03/12 Dicionários 4 Arquivos de Log Um arquivo de log é um dicionário construído como uma seqüência sem classificação (e.g. não ordenada) ! Armazenamos os itens do dicionário em uma seqüência (implementada por exemplo, como um vetor duplamente encadeado) em uma ordem arbitrária i.e., não ordenada. Desempenho: ! insertItem leva tempo O (1), uma vez que podemos inserir o novo item no início ou no final da seqüência ! findElement(k) e removeElement(k) consome tempo O ( n ) pois no pior caso (em que o item não foi encontrado) a seqüência inteira ( n elementos) deve ser percorrida em busca de um item com chave k. O arquivo de log é eficiente apenas para dicionários de tamanho reduzido ou para dicionários nos quais inserções sejam as operações mais comuns, enquanto que remoções e buscas sejam raramente executadas (e.g., registro histórico de logins em uma estação de trabalho, ou registro temporal de todas as movimentações bancárias num banco).
Background image of page 1

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

View Full DocumentRight Arrow Icon
24/03/12 Dicionários 5 Busca Binária A busca binária executa a operação findElement (k) em um dicionário implementado por uma seqüência ordenada em um vetor, classificada pelo seu valor chave: ! a cada passo, o número de itens é reduzido pela metade ! o algoritmo termina depois de executar uma quantidade logarítmica de passos Exemplo: findElement (7) 1 3 4 5 7 8 9 11 14 16 18 19 1 3 4 5 7 8 9 11 14 16 18 19 1 3 4 5 7 8 9 11 14 16 18 19 1 3 4 5 7 8 9 11 14 16 18 19 0 0 0 0 m l h m l h m l h l = m = h 24/03/12 Dicionários 6 Tabelas de Pesquisa Uma tabela de pesquisa é um dicionário implementado através de uma seqüência ordenada ! Guardamos os itens do dicionário em uma seqüência baseada num
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 9

Cap 9 - Dicionarios-4spp - Roteiro ! ! ! ! ! Dicionrios 6...

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