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

Documentos relacionados
CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches

Árvores de pesquisa. Árvores de pesquisa equilibradas

Árvores Equilibradas. Sumário

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

ÁRVORE AVL. Problema do balanceamento

INE5408 Estruturas de Dados

Árvores AVL (Adelson-Velskii and Landis)

Árvores Binárias Balanceadas Estrutura de Dados I

Á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.

Linguagem C: Árvores AVL

ESTRUTURA DE DADOS CIÊNCIA E TECNOLOGIA DO RIO. Curso de Tecnologia em Sistemas para Internet

Árvores AVL e Árvores B. Jeane Melo

Árvores binárias de busca

ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres

Árvores Binárias de Busca

Dicionários. TAD Orientado a conteúdo

AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras

Árvores Binárias de Busca

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

Árvores de Pesquisa (Parte II)

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

Árvores binárias de busca

Aula 10 Árvores Adelson-Velskii e Landis

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

Árvores Vermelho-Preto

Algoritmos e Estrutura de Dados. Aula 17 Estrutura de Dados: Árvores AVL Prof. Tiago A. E. Ferreira

Árvores Vermelho-Preto

Árvores AVL. Prof. Robinson Alves

Aula 13 Árvores Adelson-Velskii e Landis

Árvores de Pesquisa (Parte II)

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

Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação. Árvores Balanceadas

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof Márcio Bueno. / Material da Prof a Ana Eliza

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

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

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

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

Algoritmos e Estruturas de Dados 2005/2006

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

Árvores de Pesquisa (Parte II)

Á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

Algoritmos e Estruturas de Dados I. Aula 11 Árvores AVL. Prof. Jesús P. Mena-Chalco.

{ = == NULL) = == NULL)

Aula 19 Árvores Rubro-Negras

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

Introdução a árvores AVL. Prof. Ernesto Lindstaedt

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

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

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

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

Aula 13 Árvores Rubro-Negras

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

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

Á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

Métodos de Pesquisa de Dados

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

CT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

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

Árvores Binárias Balanceadas

Árvores binárias de busca

ÁRVORE RUBRO- NEGRA. Prof. André Backes. Também conhecida como árvore vermelhopreto

Árvores. Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque. Engenharia da Computação. Poli - UPE

Problemas com ABP Desbalanceamento progressivo

Universidade Federal de Mato Grosso Estrutura de Dados II

PROGRAMAÇÃO III (LTSI)

ÁRVORES BALANCEADAS (AVL)

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

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

GGI026 - Árvore balanceada

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

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação

Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

GGI026 - Árvore rubro-negra

Aula 16: Pesquisa em Memória Primária - Árvores AVL. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

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

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

Árvore-B. Árvore B. Características Gerais. Sistemas de Banco de Dados. Características Gerais. Revisão

ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres

Árvores balanceadas. Aleardo Manacero Jr.

Árvores-B (Parte Ia) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

INF1010 Lista de Exercícios 2

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 Binárias de Pesquisa Equilibradas

Pesquisa em memória primária

Árvores, Árvores Binárias e Árvores Binárias de Pesquisa. Rui Jorge Tramontin Jr.

ÁRVORES. Prof. Yan ndre Maldonado - 1. Prof. Yandre Maldonado e Gomes da Costa

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Aula 19: Percursos em árvores binárias. Percurso em pré-ordem, ordem simétrica e pós-ordem. Algoritmo para cálculo de altura uma árvore binária

PROJETO E ANÁLISE DE ALGORITMOS (INF 2926)

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

Árvores Binárias de Busca

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

EAD Árvore - representação usando listas ligadas

DAINF - Departamento de Informática

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

AED2 - Aula 04 Vetores ordenados e árvores de busca

Aula 28: Listas de Prioridades

Transcrição:

ÁRVORES LNEDS Uma árvore binária de busca não garante acesso em tempo logarítmico. Inserções ou eliminações podem desbalanceá-la. Pior caso: a árvore degenera em lista ligada, onde a busca passa a gastar tempo linear. alanceamento das árvores binárias de busca: Evitam esses casos degenerados. Garantem tempo logarítmico para todas as operações. Requerem algoritmos mais elaborados para inserção e eliminação. De modo geral, os nós das árvores balanceadas armazenam mais informações. Dois conhecidos modelos: árvores VL e vermelho-preto.

ÁRVORES VL utores: delson-velskii e Landis (1962) Exigências para as sub-árvores de cada nó: Diferença de alturas não pode exceder 1 É simples de manter Garante altura logarítmica para a árvore Definição: uma árvore VL é uma árvore binária de busca em cujos nós as alturas das sub-árvores diferem no máximo de uma unidade.

ÁRVORES VL 12 12 8 16 8 16 4 2 6 10 14 4 10 14 2 6 Inserção do 5 5 Desbalanceamento pós cada inserção ou eliminação, é necessário verificar o balanceamento de todos os nós da árvore

INSERÇÃO EM ÁRVORES VL pós uma inserção, somente podem ficar desbalanceados os nós do caminho da raiz até esse novo nó. Nesse caminho, é preciso encontrar o nó mais profundo no qual ocorreu desbalanceamento. asta rebalancear esse nó! Supondo que X seja esse nó, possíveis casos a serem analisados: a) árvore esquerda do filho esquerdo de X b) árvore direita do filho esquerdo de X c) árvore esquerda do filho direito de X d) árvore direita do filho direito de X asos simétricos: a e d (caso 1); b e c (caso 2).

SO 1: ROTÇÃO SIMPLES é nó mais profundo que sofreu desbalanceamento Sua sub-árvore esquerda ficou 2 níveis abaixo da direita não está no mesmo nível de (pois estaria desbalanceado antes da inserção) não está no mesmo nível que (pois seria o nó mais profundo)

EXEMPLO 12 12 8 4 10 14 16 4 2 8 14 16 2 6 1 6 10 1 árvore resultante é VL e ficam balanceados altura da árvore resultante é igual à da árvore anterior à inserção O problema é resolvido em tempo constante

SO 2 R P P Q Q R Uma rotação simples não resolveria o desbalanceamento sub-árvore Q, que está a 2 níveis de diferença de R, passaria a estar a 2 níveis de diferença de P

SO 2: ROTÇÃO DUPL k3 k3 D D Uma (e somente uma) das sub-árvores ou está 2 níveis abaixo de D k3 ficaria na raiz s novas posições de, e das sub-árvores respeitam a ordenação altura da árvore resultante é igual à da árvore anterior à inserção

EXEMPLO 12 12 8 D 4 10 14 16 k3 6 4 8 14 16 2 6 k3 2 5 10 D 5 Essa rotação dupla corresponde a 2 rotações simples Entre e k3 Entre e k3 Também pode ser feita em tempo constante

ELIMINÇÕES EM ÁRVORES VL eliminação de um nó numa árvore VL é, inicialmente, análoga à que ocorre numa árvore binária de busca: Se for folha, basta eliminá-la. Se tiver um único filho, ele ficará em sua posição. Se tiver dois filhos, elimina-se o nó mais à esquerda da sua sub- árvore à direita, cujo valor passará a ser armazenado em seu lugar. É fácil perceber que essa técnica pode provocar desbalanceamentos na árvore VL. O rebalanceamento começará no nó mais profundo que, após a eliminação, perdeu a propriedade VL. Do modo semelhante às inserções, será preciso verificar seis possíveis casos, simétricos dois a dois.

SO 1: ROTÇÃO SIMPLES Nos esquemas abaixo, como a eliminação ocorreu na subárvore, bastará realizar uma rotação simples: ou No segundo esquema, a sub-árvore resultante diminuiu de altura (uma unidade). Por isso, também será preciso realizar um eventual rebalanceamento no pai de. Isso pode continuar até a raiz... Há também outros dois casos simétricos, onde é inicialmente a sub-árvore esquerda de.

SO 2: ROTÇÃO DUPL No esquema abaixo, ou podem ter altura menor (uma unidade). omo a eliminação ocorreu na sub-árvore D, será preciso realizar uma rotação dupla: k3 k3 D D sub-árvore resultante diminuiu de altura (uma unidade). Por isso, também será preciso realizar um eventual rebalanceamento no pai de k3. Isso pode continuar até a raiz... Há um caso simétrico, onde inicialmente D é a sub-árvore esquerda de e k3 é filho esquerdo de.

ÁRVORES VL Nas árvores VL, inserções gastam tempo constante, e eliminações gastam, no pior caso, tempo proporcional à altura da árvore. Exercício: Implementar uma sequência de inserções e eliminações numa árvore VL, e depois imprimir percursos nessa árvore. Dica: em cada nó, será preciso manter um inteiro (-1, 0 ou 1) que indica a diferença entre as alturas das suas sub-árvores.

LTUR DE UM ÁRVORE VL Seja n(h) o número mínimo de nós de uma árvore VL com altura h. Sabemos que n(0)=1 e n(1)=2. Para h>1, essa árvore VL mínima será formada pela raiz, por uma sub-árvore de altura h-1 e por outra sub-árvore de altura h-2. Portanto, n(h) = 1 + n(h-1) + n(h-2), para h>1. omo n(h-1) > n(h-2), sabemos que n(h) > 2.n(h-2). Repetindo: n(h) > 2.n(h-2) > 2.(2.n(h-2-2)) = 4.n(h-4) n(h) > 4.n(h-4) > 4.(2.n(h-4-2)) = 8.n(h-6) Generalizando: n(h) > 2 i.n(h-2i), para i>0.

LTUR DE UM ÁRVORE VL n(h) > 2 i.n(h-2i), para i>0. onsideremos o caso h = 2i+1, ou seja, i = (h-1)/2: n(h) > 2 (h-1)/2.n(2i+1-2i) n(h) > 2.2 (h-1)/2, pois n(1) = 2 n(h) > 2 (h+1)/2 lg n(h) > (h+1)/2 h < 2.lg n(h) - 1 h = O(log n), ou seja, a altura de uma árvore VL é de ordem logarítmica em relação ao seu número de nós. Portanto, os algoritmos de busca e de eliminação na árvore VL são logarítmicos!

LTUR DE UM ÁRVORE VL Por outro lado, é fácil verificar que n(h) = F(h+3)-1, onde F(h) é o h-ésimo número de Fibonacci. Mais precisamente, sabe-se que h < 1,44.lg (n+2), onde h é a altura e n é o número de nós de uma árvore VL, ou seja, o pior caso tem um fator multiplicativo pequeno.