INE5408 Estruturas de Dados

Documentos relacionados
Estruturas de Dados. Aula 08. Árvores AVL II. Karina Mochetti

Árvores AVL. O balanceamento da árvore pode ser realizado localmente se apenas uma porção da árvore for afetada por operações de inserção ou remoção.

Árvores AVL (Adelson-Velskii and Landis)

Algoritmos e Estruturas de Dados II Árvores - AVL. Prof. César Melo DCC/ICE/UFAM

Árvores AVL e Árvores B. Jeane Melo

Uma árvore binária de busca não garante acesso em tempo logarítmico.

Árvores AVL (Balanceadas) Profª.Drª. Roseli Ap. Francelin Romero Fonte: Profa. Patrícia Marchetti Revisão: Gedson Faria

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof a Karina Oliveira. Fonte: Prof a Ana Eliza

ÁRVORE AVL. Problema do balanceamento

Árvores binárias de busca

UNILASALLE Curso de Bacharelado em Ciência da Computação. Estrutura de Dados II Prof. Magalí T. Longhi. Árvores AVL*

Aula 10 Árvores Adelson-Velskii e Landis

ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres

Árvores Binárias de Busca

Árvore AVL A seguir estudaremos árvore AVL e árvore 234. Os slides que versão sobre as árvores retro aludidas foram baseados nos slides gerados pela

ALGORITMOS AVANÇADOS. UNIDADE V Estruturas de dados dos tipos Árvore Binária e Árvore AVL. Luiz Leão

Árvores Vermelho-Preto

Árvores Binárias Balanceadas Estrutura de Dados I

Árvores AVL. Prof. Robinson Alves

Árvores Rubro-Negras. Árvores Rubro-Negras. (Vermelho-Preta) Estrutura da Árvore. Estrutura da Árvore

Linguagem C: Árvores AVL

Árvores binárias de busca

PROGRAMAÇÃO III (LTSI)

Introdução a AVL: teoria e prática. 22/11, 25/11 e 30/11

Árvore Vermelho-Preta. Estrutura de Dados II Jairo Francisco de Souza

Árvores Equilibradas. Sumário

Árvores Binárias de Busca

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Problemas com ABP Desbalanceamento progressivo

Estruturas de Dados com Jogos. Capítulo 9 Árvores Balanceadas

Pedro Vasconcelos DCC/FCUP. Programação Funcional 16 a Aula Árvores equilibradas

Árvores Binárias Balanceadas

Árvores AVL. Nesta aula será apresentado o ADT árvore AVL que são árvores binárias de altura equilibrada. Algoritmos e Estruturas de Dados I

Árvores AVL. Estrutura de Dados II Jairo Francisco de Souza

Árvores balanceadas. Aleardo Manacero Jr.

Árvores Binárias e AVL Felipe Barros Pontes Gustavo Márcio de Morais Cunha Márcio de Medeiros Ribeiro

Árvores. Prof. César Melo ICOMP/UFAM

GGI026 - Árvore balanceada

Árvores de pesquisa. Árvores de pesquisa equilibradas

Linguagem Haskell. Maria Adriana Vidigal de Lima

Dicionários. TAD Orientado a conteúdo

DAINF - Departamento de Informática

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C

1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó.

Árvores. Estruturas de Dados. Prof. Vilson Heck Junior

1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó.

Aula 19 Árvores Rubro-Negras

INF1010 Lista de Exercícios 2

Splaying Tree (Árvore espalhada) Estrutura de Dados II Jairo Francisco de Souza

Estruturas de Dados. Árvores AVL: Partes I e II. Desempenho de ABBs (Revisão)

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Aula 13 Árvores Rubro-Negras

Módulo 9. Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II C++ (Rone Ilídio)

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres

Árvores Binárias de Busca (ABB) 18/11

Árvores Rubro-Negra IFRN

Árvores de Pesquisa. A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação.

Métodos de Pesquisa de Dados (II) Árvore N-ária de Pesquisa

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Splaying Tree (Árvore espalhada) Estrutura de Dados II Jairo Francisco de Souza

ESTRUTURA DE DADOS DCC013. Árvore Binária de Busca

Transcrição:

INE5408 Estruturas de Dados - Características - Rotações Árvores AVL

Características Manter uma árvore binária de busca balanceada sob a presença de constantes inserções e deleções é ineficiente. Para contornar esse problema foi criada a árvore AVL (Adelson-Velskii e Landis). A árvore AVL é uma árvore binária com uma condição de balanço, porém não completamente balanceada. Árvores AVL permitem inserção / deleção e rebalanceamento aceitavelmente rápidos.

Características Critério de balanceamento: dado um nodo qualquer, uma árvore está AVL-balanceada se as alturas das duas subárvores deste nodo diferem de, no máximo, 1. Para rebalancear uma árvore após uma inserção, são utilizadas rotações de subárvores: rotações simples em muitos casos; rotações duplas em alguns.

Inclusão com rotação Exemplo de rebalanceamento: o nodo com chave 6.5 desequilibrou a árvore. Com a rotação da subárvore em torno do nodo 7, rebalanceamos.

Inclusão com rotação Algoritmo básico: partimos do nodo inserido e subimos a árvore; atualizamos a informação do balanceamento em cada nodo (na árvore AVL, cada nodo conhece a sua altura); se chegamos à raiz sem encontrar nada errado, terminamos; caso encontremos um nodo desbalanceado (corresponde à H esq - H dir < 2 ferida), realizamos a rotação no primeiro nodo desbalanceado encontrado. No exemplo anterior, isto significa que, depois da inserção de 6.5, o nodo 8 ficou desbalanceado.

Exemplo: criação de uma árvore AVL com os números de 1 a 7 O primeiro problema ocorre quando inserimos o 3. A condição-avl foi violada. executamos uma rotação simples entre a raiz (cuja condição-avl está violada) e seu filho da direita.

Exemplo: criação de uma árvore AVL com os números de 1 a 7 Inserimos o elemento 4 sem problemas. Inserimos o elemento 5: violação em 3. Mesmo processo da rotação anterior será seguido. Importantíssimo: observe-se que 2 precisa ser notificado que seu filho agora é o nodo com chave 4.

Exemplo: criação de uma árvore AVL com os números de 1 a 7 A inclusão do elemento 6 desequilibra a raiz: subárvore direita tem altura 0; subárvore esquerda tem altura 2. Rotacionamosnaraizentre 2 e 4: transformamos 2 em filho de 4; subárvore esquerda original de 4 é agora subárvore direita de 2. Condição de ordem da árvore de busca é mantida.

Exemplo: criação de uma árvore AVL com os números de 1 a 7 A inclusão de um nodo com chave 7 causa uma rotação como já havíamos visto antes: 5 fica desequilibrado; rotacionamos em 6.

Inclusão com rotação dupla O algoritmo descrito até agora tem um problema: existem casos onde ele não basta para consertar a árvore após uma inclusão ou exclusão. Exemplo: inserimos as chaves 8 a 15, em ordem inversa, na árvore anterior. a inserção de 15 não provoca problemas, nem desbalanceia a árvore; a inserção de 14, por sua vez, faz o rebalanceamento falhar.

Inclusão com rotação dupla O problema que surge aqui é que tanto 7 como 14 são candidatos à subárvore esquerda de 15. Neste caso, necessitamos de uma dupla rotação.

Inclusão com rotação dupla O processo é semelhante à rotação simples, só que envolve 4 subárvores: corresponderia a uma rotação efetuada primeiro entre k1 e k2 e depois entre k2 e k3.

Inclusão com rotação dupla Exemplo simétrico ao anterior.

Inclusão do elemento 14 com rotação dupla No exemplo, a rotação direita-esquerda envolve o 7, o 15 e o 14: k3 é o nodo de chave 7, k1 o de chave 15 e k2 o de chave 14; primeiro rotacionamos 14-15 à direita, depois 7-14 à esquerda.

Inclusão do elemento 13 com rotação dupla Novamente uma dupla rotação direitaesquerda: desta vez a rotação envolverá 6 (k3), 14 (k1) e 7 (k2).

Inclusão do elemento 12 A inclusão do elemento 12 provoca um desequilíbrio na raiz: como12 não está entre 4 e 7, sabemos que uma rotação simples vai funcionar.

Inclusão do elemento 11 A inclusão do elemento 11 provoca um desequilíbrio logo embaixo: como 11 não está entre 12 e 13, sabemos que uma rotação simples vai funcionar.

Inclusão dos elementos 10, 9 e 8 Os elementos 10 e 9 serão inseridos com rotação simples, e o elemento 8 sem rotação alguma. Tente em casa A árvore resultante será vista a seguir.

Caso interessante: inclusão do elemento 8.5

Temos uma rotação dupla que parece ser uma simples