Árvores Balanceadas (AVL)

Slides:



Advertisements
Apresentações semelhantes
Unidade 7 SEQUÊNCIAS E REGULARIDADES
Advertisements

Listas Encadeadas CONTEÚDO (1) Motivação (2) Definição (3) Operações
Estruturas de Dados Arvores
Pesquisas de Dados (Parte 2)
Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB
ACESSO À MEMÓRIA SECUNDÁRIA - ÁRVORES
Para Casa – Montar o cariograma
Série de Exercícios.
MC 202 – Estruturas de dados
Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n)
Árvores.

Pesquisa em Memória Primária – Árvores AVL
André Lopes Pereira Luiz Carlos Barboza Júnior
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Árvores AVL.
Classificação e Pesquisa de Dados
POTENCIAÇÃO DE NÚMEROS RACIONAIS
Classificação (Ordenação) de dados
Métodos de Pesquisa: Seqüencial e Binária
Árvores Binárias de Pesquisa (ABP)
Árvores e Árvores Binárias
Métodos de Classificação por Seleção: HeapSort
Classificação de dados por Troca: QuickSort
Auditoria de Segurança da Informação
CAP-223 Árvore através de uma Árvore Binária A BCDE FGHIJK A BC D E FGHIJK.
Algoritmo e Estrutura de Dados II
Listas Encadeadas.
Indexação de Arquivos Página de rosto.
Árvore Binária de Busca
Listas e algoritmos (em Scratch)
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Fiscal - Conversão de Regra de Imposto IdentificaçãoFIS_004 Data Revisão18/10/2013.
Pesquisa em Memória Primária
Árvores binárias de pesquisa com balanceamento
INF 1010 Estruturas de Dados Avançadas
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Salas de Matemática.
Principais operações em Listas TPA Listas Simples Inserção no Final 1.void insereNofinalDaLista(Lista *l, Elemento e){ 2.Lista paux,p; 3. p.
Algorítmos e estrutura de dados III
Introdução teórica A modulação em freqüência consiste na variação da freqüência da portadora proporcionalmente ao sinal de informação. Dado o sinal modulador.
Operações de Inserção e Remoção – BTree Resumo
Algoritmos e Estrutura de Dados III
Introdução e Busca Cega
Árvores Balanceadas Liliane Rose Benning Salgado.
Rotação Simples e Dupla Katia Guimarães
Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um dado pode ser qualquer.
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Campus de Caraguatatuba Aula 12: Sistemas de Equações Lineares (2)
Árvores Splay Estruturas de Dados
Ceça Moraes – Introdução à Programação SI1
Árvore Binária de Busca
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
POTENCIAÇÃO E FUNÇÃO EXPONENCIAL
– Aula 20 Adaptado por Reinaldo Fortes para o curso de
Árvores Vermelho-Preto
Árvores AVL Balanceadas (Árvore Binária Balanceada)
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Prof. Hilton Cardoso Marins Junior
Árvores Rubro-Negras São árvores balanceadas segundo um critério ligeiramente diferente do usado em árvores AVL A todos os nós é associada uma cor que.
Árvores AVL Algoritmos e Estruturas de Dados - IF672
Estruturas Avançadas de Dados UNISINOS
AVL Árvores Equilibradas Sumário AVL Splay B Vermelho-Preto AA e BB Multidimensionais quaternárias k-d [Pesquisa Lexicográfica tries multivia tries binárias.
1 de outubro de Árvores de Busca e Árvores AVL Parte 1 Katia Guimarães.
Árvores Balanceadas (AVL)
Árvores Balanceadas (AVL)
Árvores Binárias de Pesquisa e Balanceamento usando Árvores AVL
Transcrição da apresentação:

Árvores Balanceadas (AVL) Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com

Roteiro Contextualização Árvores Balanceadas (AVL) Operações de Balanceamento

Roteiro Contextualização Árvores Balanceadas (AVL) Operações de Balanceamento

Contextualização As ABP estudadas têm uma séria desvantagem que pode afetar o tempo necessário para recuperar um item armazenado. A desvantagem é que o desempenho da ABP depende da ordem em que os elementos são inseridos. 1, 2, 3, 4, 5, 6, 7 4, 6, 2, 5, 1, 7, 3

Contextualização Idealmente, deseja-se que a árvore esteja balanceada, para qualquer nó p da árvore. Como saber se a árvore está balanceada ? Para cada nó p da árvore a altura da sua sae é aproximadamente igual à altura da sua sad.

Roteiro Contextualização Árvores Balanceadas (AVL) Operações de Balanceamento

Árvores Balanceadas (AVL) O nome AVL vem de seus criadores Adelson Velsky e Landis (1962). Uma árvore binária de pesquisa T é denominada AVL se: Para todos nós de T, as alturas de suas duas sub-árvores diferem no máximo de uma unidade. Operações de consulta, inserção e remoção de nós tem custo O(log2n). 130 100 150 120 200 80 110

Como reconhecer uma árvore desbalanceada? (1/2) Como saber se a árvore está desbalanceada ? Verificando se existe algum nodo “desregulado”. Como saber se um nodo está desregulado ? Subtraindo-se as alturas das suas sub-árvores. Por questões de eficiência, estas diferenças são pré-calculadas e armazenadas nos nós correspondentes, sendo atualizadas durante as operações.

Como reconhecer uma árvore desbalanceada? (2/2) Possíveis valores de diferença para cada nó em uma árvore balanceada: -1, 0, 1. Fator de Balanceamento (FB) de cada nó da árvore FB(p) = h(sad(p)) – h(sae(p))

Exemplos de cálculos de FB +6 +5 +4 +3 +2 +1 Inserção: 1, 2, 3, 4, 5, 6 e 7 Inserção: 4, 2, 3, 6, 5, 1 e 7 -1 +2 Inserção: 4, 1, 3, 6, 5, 2 e 7

Operação: Inserção Inserção: 4, 6, 1, 7, 5, 3 e 2. -1 +2 +2 Op. de balanceamento -1

Operação: Remoção Inserção: 4, 6, 2 e 7. +1 +2 Remover nó 2 Inserção: 4, 6, 2 e 7. +2 +1 Remover nó 2 Op. de balanceamento

Roteiro Contextualização Árvores Balanceadas (AVL) Operações de Balanceamento

Operações de Inserção e Remoção A inserção ou remoção de um nó em uma árvore AVL pode ou não provocar seu desbalanceamento. Se a árvore AVL ficar desbalanceada, a restauração do seu balanceamento é realizado através de ROTAÇÕES.

Tipos de Rotações Rotação Simples: Rotação Dupla: Rotação a Esquerda Rotação a Direita Rotação Dupla:

Exemplos de Rotação Simples Suponha que nós queiramos inserir o nó 3 na árvore inicial abaixo -1 -1 +1 -2 +1 Rotação a direita (nó 8) A inserção do nó 3 produziu um desbalanço no nó 8 verificado pelo FB = -2 neste nó. Neste caso, como os sinais dos FB são os mesmos (nó 8 com FB = -2 e nó 4 com FB = -1) significa que precisamos fazer apenas uma ROTAÇÃO SIMPLES.

Exemplo de Rotação Dupla (1/2) Suponha que queiramos inserir o nó 5 na árvore abaixo -1 -1 +1 -2 (a) -2 Observe que o nó 8 tem FB = -2 e tem um filho com FB = +1 (sinais opostos). Neste caso, o balanceamento é alcançado com duas rotações. Primeiro: (a) rotação simples sobre o nó 4 (com FB = +1) para a esquerda.

Exemplo de Rotação Dupla (2/2) -2 (b) +1 Logo após da rotação a esquerda: (b) rotaciona-se o nó 8 (FB = -2) na direção oposta (direita neste caso).

Pseudo-Código: Rotações Simples Rotação Simples a Esquerda p aponta para o nó desbalanceado q = right(p); hold = left(q); left(q) = p; right(p) = hold; p = q; Rotação Simples a Direita q = left(p); hold = right(q); right(q) = p; left(p) = hold; 10 15 12 7 21 30 10 15 4 2 1 7

Pseudo-Código: Busca e Inserção Procurar pseudo-código no livro do Tenembaum “Estrutura de Dados Usando C”. pags: 531, 532, 533 e 534.

Conclusões Balanceamento de árvores busca minimizar o número médio de comparações necessárias para localizar qualquer dado. Operações de inserção e remoção de nós tendem a tornar as árvores desbalanceadas. Há um custo extra de processamento. Compensado quando os dados armazenados precisam ser recuperados muitas vezes.

AVL Tree Applet http://webpages.ull.es/users/jriera/Docencia/AVL/AVL%20tree%20applet.htm