Árvores AVL e Árvores B. Jeane Melo

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

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

Árvores binárias de busca

Árvores binárias de busca

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

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

Árvores Binárias de Busca

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

Universidade Federal de Mato Grosso Estrutura de Dados II

INE5408 Estruturas de Dados

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m

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

Árvores Binárias de Busca

Árvores AVL. Prof. Robinson Alves

ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres

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

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

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

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

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Árvores binárias de busca

Árvores Binárias de Busca

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

Linguagem C: Árvores AVL

INF 1010 Estruturas de Dados Avançadas. Árvores binárias

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

Árvores Vermelho-Preto

Linguagem Haskell. Maria Adriana Vidigal de Lima

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

Árvores Vermelho-Preto

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

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

GGI026 - Árvore rubro-negra

Aula 19 Árvores Rubro-Negras

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

Árvores Binárias Balanceadas Estrutura de Dados I

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

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

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich

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

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

Aula 13 Árvores Rubro-Negras

Aula 10 Árvores Adelson-Velskii e Landis

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

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

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

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

Árvore Binária de Busca. Prof. César Melo

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

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior

ÁRVORE AVL. Problema do balanceamento

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

Árvores de Pesquisa (Parte II)

Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM

ÁRVORES BALANCEADAS (AVL)

Dicionários. TAD Orientado a conteúdo

Á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

DAINF - Departamento de Informática

Árvores Equilibradas. Sumário

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 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 Binárias de Busca (ABB) 18/11

Árvores Binárias de Busca

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

Pesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

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

Á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 Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação

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

Métodos de Pesquisa de Dados

Árvores & Árvores Binárias

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

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

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

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

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

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

ÁRVORE BINÁRIA DE BUSCA

B-tree. B-Trees. Estrutura do nodo da B-tree. Balanceamento. Disposição dos elementos ordenados na B-tree. Exemplo de uma B-tree de ordem 3

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

Árvore Binária de Busca

Árvore binária - definição

EAD Árvore - representação usando listas ligadas

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

Problemas com ABP Desbalanceamento progressivo

Árvores AVL IAED, 2014/2015

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

Árvores balanceadas. Aleardo Manacero Jr.

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

Árvores de Pesquisa (Parte II)

Aula 13 Árvores Adelson-Velskii e Landis

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

Árvores binárias de busca

Árvores de Pesquisa (Parte I)

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

AED2 - Aula 04 Vetores ordenados e árvores de busca

Árvores. Árvores M-Vias. Métodos de Pesquisa de Dados. de Pesquisa (ANP) VANTAGENS EXEMPLO

Transcrição:

Árvores AVL e Árvores B Jeane Melo

Roteiro Árvores Binárias Árvores AVL Definição Motivação Balanceamento Operações de rebalanceamento Árvores B Introdução

Árvores Binárias Árvores binárias Cada nó tem no máximo duas sub-árvores Quando há apenas uma sub-árvore indicar se é esquerda ou direita Árvore binária completa Cada nó ou é uma folha ou tem grau exatamente igual a dois Não existe nenhum nó de grau 1

Árvores Binárias Se uma árvore binária tem m nós no nível d então ela terá no máximo 2m nós no nível d+1 Observe que o nível i de uma árvore binária poderá conter no máximo 2 i nós 0 1 2 3

Árvores AVL Proposta pelos matemáticos russos Georgii Adelson Vel sky e Yevgeniy Landis: Algoritmos para organização de informação [1962] Árvore de busca binária auto-balanceada As alturas das sub-árvores esquerda e direita diferem por no máximo 1 Complexidade da ordem de O(logn), onde n é o número de nós, para operações de inserção, remoção e busca por elementos.

Árvores AVL - Definição Uma árvore binária T é denominada AVL quando, para todo nó v, a altura das 2 subárvores, esquerda e direita, satisfazem fb(v) = altura(dir) - altura(esq) 1 onde fb(v) é o fator de balanceamento do nó v.

Árvores AVL - Motivação As operações básicas sobre árvores de busca binária têm complexidade proporcionais à altura da árvore No caso de uma árvore binária completa O(logn) Se a árvore é uma cadeia linear de n nós as mesma operações custa O(n) no pior caso.

Árvores AVL A altura de uma ALV é proporcional a log n, assim, o custo para inserir e retirar elementos é da O(log n) Após operações de inserção e remoção verifica-se o fator de balanceamento para manter esta propriedade da árvore.

Balanceamento Uma árvore AVL é dita balanceada quando a diferença entre as alturas das sub-árvores não é maior do que um. É possível demonstrar que a altura de uma árvore AVL é proporcional a log 2 n (~ 1.5* log 2 n).

Árvores AVL As operações básicas sobre uma AVL são as mesmas utilizadas em árvores binárias de busca: Inserção, Remoção, Busca. Porém, após realizar uma inserção ou remoção verifica-se o fator de balanceamento. Se este difere de 1, 0 ou - 1, se faz necessária uma operação de rotação para rebalancear a árvore.

Árvores AVL Como calcular o fator de balanceamento? Altura (sub-árvore da direita) Altura (sub-árvore da esquerda) Como calcular a altura da árvore? int altura (arvore r) { if (r == NULL) return -1; else { int he = altura (r->esq); int hd = altura (r->dir); if (he < hd) return hd + 1; else return he + 1; } }

Exemplos -2-1 0 0-1 0 0 0-2 2-1 1-1 1 0 0 0 0 0 0 0 0 0 0

AVL - Rebalanceamento Operações de Rotação Rotação à esquerda Rotação à direita Rotação dupla à esquerda Rotação dupla à direita Usadas após inserção ou remoção de um elto.

Inserção em uma AVL AVL-Inserir (T, x) Entrada: Árvore AVL e um elto x para inserção em T. Saída: Árvore AVL (T + x) Início 1. Use o algoritmo de inserção para árvore de busca binária. 2. Se (T + x) é AVL então devolva (T + x) 3. senão T' = AVL-Balance (T + x). 4. Devolva T'. Fim

Remoção em uma AVL AVL-Remoção(T,x) Entrada: árvore AVL e o nó x a ser removido em T. Saída: árvore AVL (T x). Início 1. Execute a remoção como na aŕvore binária de busca. 2. Verifique se a árvore ficou desregulada (use o fator de balanceamento como na inserção). 3. Execute uma ou mais rotações (simples ou dupla). 4. Devolva (T x). Fim

Rotação à esquerda

Rotação à direita

Rotação dupla à esquerda 1-Gira à direita 3-Árvore resultante 2-Gira à esquerda

Rotação dupla à direita 1-Gira à esquerda 3-Árvore resultante 2-Gira à direita

Árvores B As árvores de busca, quando balanceadas, permitem acesso em tempo logarítmico No caso das AVL o tempo é log 2 (n) Podemos tentar melhorar esse tempo?

Árvores B Uma forma seria procurar fazer a busca em tempo log k (n), com k > 2 Como fazer isso?

Árvores B Isto pode ser feito aumentando o número de elementos em cada nó.

Árvores B Árvores balanceadas Projetadas para trabalhar com dispositivos de armazenamento secundário (discos magnéticos) Otimizar as operações de entrada e saída nos dispositivos (minimizar o número de acessos ao disco) Um nó em uma árvores B pode ter muitos filhos

Árvores B Seja d um número natural. Uma árvore B de ordem d é uma árvore ordenada que é vazia, ou que satisfaz as seguintes condições: 1) A raiz é uma folha ou tem no mínimo 2 filhos; 2) Cada nó diferente da raiz e das folhas possui no mínimo (d + 1) filhos; 3) Cada nó tem no máximo (2d + 1) filhos; 4) Todas as folhas estão no mesmo nível.

Árvores B Um nó em uma árvore B é chamado de página Cada página armazena m chaves

Árvores B Uma página não folha tem (m + 1) filhos: raiz - 1 m 2d outras - d m 2d Em cada página P as chaves estão ordenadas s 1 s 2... s m e contém (m + 1) ponteiros p 0, p 1,..., p m para os filhos de P (nas folhas estes ponteiros são NULL). p 0 s 1 p 1 s 2 p... 2 s m p m para qualquer chave y da página apontada por p 0,, y < s 1 Para qualquer chave y da página apontada por p k, 1 k (m 1), s k < y < s (k + 1) Para qualquer chave y da página apontada por p m, y > s m

Árvores B Para o projeto, estamos interessados em árvores B de ordem 1 (d=1) Árvores 2-3 P G T C K M R X A F H L O Q S V Z

Árvores 2-3 Inserção Folha Se houver espaço para acrescentar o novo elemento T I V X Inserção de G E G L P U W Z

Árvores 2-3 Se não há espaço: (inserção de N) T I V X E G L P N U W Z

Árvores 2-3 Gera-se dois nós com os elementos extremos do nó Promove-se o nó central (incluído no nível superior) T I N V X E G L P U W Z

Árvores 2-3 Se não há espaço para acrescentar o nó promovido: T I N V X E G L P U W Z C

Árvores 2-3 Mesmo procedimento Nó que tenha espaço Raiz I T E N V X C G L P U W Z

Árvores 2-3 I T E N V X C G L P U W Z

Referências Cormen Estruturas de dados e seus algoritmos (Jayme Luiz Szwarcfiter) http://www.lcad.icmc.usp.br/~nonato/ed/b_arv ore/btree.htm Katia Guim (Cin UFPE)