Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB

Slides:



Advertisements
Apresentações semelhantes
AULA 8 Profa. Sandra de Amo GBC053 – BCC
Advertisements

Marco Antonio Montebello Júnior
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Estruturas de Dados Árvores Binárias
Estruturas de Dados Arvores
Árvores Equilibradas Sumário Splay Vermelho-Preto AA e BB
Pesquisa em profundidade
Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB
Estrutura de Dados e Algoritmos e Programação e Computadores II
Organização e Recuperação da Informação
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 Árvores Digitais
Pesquisa em Memória Primária – Árvores AVL
Pesquisa em Memória Primária – Árvores de Busca
Pesquisa em Memória Primária – Árvores de Busca
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Classificação e Pesquisa de Dados
Árvores Binárias de Pesquisa (ABP)
Métodos de Classificação por Seleção: HeapSort
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Indexação de Arquivos Página de rosto.
Prof. Ernesto Lindstaedt
Fundamentos sobre Árvores
Árvore Binária de Busca
Algoritmos e Estruturas de Dados II
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
Árvores Binárias de Pesquisa
Algorítmos e estrutura de dados III
Algorítmos e estrutura de dados III Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Algorítmos e estrutura de dados III
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.
Árvores Splay Estruturas de Dados
© Copyright 2007 Algoritmos e Estruturas de Dados - Todos os direitos reservados Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto.
Árvore Binária de Busca
Árvores B Obs: Uma árvore 2-3 é uma árvore B de ordem 1.

Árvores Binárias Profa. Patrícia A. Jaques Luiz Gonzaga Jr
Estruturas de Dados Aula 15: Árvores
– 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.

Estruturas Avançadas de Dados UNISINOS
AULA 21 Profa. Sandra de Amo BCC - UFU
B-tree Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB Multidimensionais quaternárias k-d Pesquisa Lexicográfica tries multivia tries.
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.
Árvores B Motivação: pesquisa em disco
Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB
Introdução a Árvores e Árvores Binárias
Árvores de Busca Binária
1 de outubro de Árvores de Busca e Árvores AVL Parte 1 Katia Guimarães.
© Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Busca Gulosa em Grafos IF672 - Algoritmos e Estruturas de Dados CIn -
BANCO DE DADOS II Árvore de Dados. FATEC - GUARATINGUETÁ Professor: Eduardo Barbosa Adiel Lemos Ana Renata Bruno Michael Jéssica Fernanda Layla Monique.
INE5408 Estruturas de Dados Árvores B - Estrutura e peculiaridades -Algoritmos de inserção, pesquisa e deleção.
Transcrição da apresentação:

Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB Multidimensionais quaternárias k-d Pesquisa Lexicográfica tries multivia tries binárias PATRICIA Versão AED2 Falta completar as árvores vermelho-preto- ver notas sobre algoritmos top-down para VP

Árvores Vermelho-Pretas correspondem a uma transformação de árvores-B, em particular a de ordem 4 para uma representação em árvore binária de pesquisa os filhos de um nó da árvore-B podem ser representados por uma lista ligada ou por outra estrutura, como as árvores binárias de pesquisa os ramos desta, internos a um nó da árvore-B, são os ramos vermelhos e os ramos que ligam diferentes nós da árvore-B são os ramos pretos (a cor de um nó é a cor do ramo que lhe fica imediatamente acima; a raiz é preta) a pesquisa e a travessia é a de uma árvore binária; inserção e apagamento leva em conta a cor; processamentos O(log n) Uma árvore vermelho-preta é uma árvore binária de pesquisa em que cada nó tem a cor vermelho ou preto e que satisfaz 1. Cada caminho simples da raiz até uma subárvore vazia passa pelo mesmo número de nós pretos (equilíbrio). 2. Se um nó é vermelho, então tem um pai e este é preto. - a condição 2 garante a identificação das subestruturas internas a cada nó

Árvore-B como Vermelho-Preta j f m s d u h e g i b k o w c p r t v x a l n

Transformação de nós a b c a b b a c T1 T2 T3 T4 T1 T2 T3 T4 a b T1 b

Inserção genericamente, o algoritmo de inserção começa na raiz, compara as chaves para escolher a subárvore e é recursivo até encontrar uma subárvore vazia, onde cria um nó o novo nó é vermelho, para garantir a condição preta (nas árvores-B a inserção também começava por ser num nó pre-existente) se o pai do novo nó for preto, termina; se for vermelho, viola-se a condição 2; adia-se a correcção do problema; retorna-se indicação de estado de que se processou um nó vermelho está-se agora no pai: se for preto, tudo bem; se for vermelho, anota-se no estado o problema, em conjunto com a indicação de o filho ser esquerdo ou direito estamos no avô, que tem que existir e é preto; neste nível recursivo corrige-se o problema do neto: se o tio for preto (ou não existir), basta fazer uma rotação simples ou dupla, para o lado do tio; se o tio for vermelho, troca-se o pai e o tio para preto e o avô para vermelho o problema recomeça, agora entre o avô e o bisavô, com a indicação de estado de nó vermelho; pode-se chegar a mudar a cor da raiz para vermelho, o que obriga a chamada exterior a repor a cor em preto

Repor condições de vermelho e preto avô pai pai tio T4 avô filho T3 filho tio T1 T2 T3 T4 Rotação à direita T1 T2 avô filho pai tio T4 avô pai filho Dupla rotação à direita T1 tio T1 T2 T3 T4 T2 T3

Repor condições de vermelho e preto avô avô pai pai tio tio filho T1 T2 T3 Mudança de cor filho T1 T2 T3 avô avô pai pai tio tio Mudança de cor T1 T2 T3 T1 T2 T3 filho filho

Árvores BB e AA Árvore BB: B e Binária Árvores AA como BB mas vermelho-preto cada nó tem no máximo 1 filho vermelho Árvores AA como BB mas só filhos direitos podem ser vermelhos reduz casos de reequilíbrio remoção: filho único de nó interno é vermelho (da condição VP); chave do nó a apagar é substituída pela menor da subárvore direita em vez de cor, nível do nó nível = 1 nas folhas nível = nível do pai em nó “vermelho” nível = nível do pai -1 em nó “preto”

Árvores AA Propriedades 30 70 15 50 60 85 5 10 20 35 40 55 65 80 90 filho esquerdo tem nível 1 unidade abaixo do do pai filho direito tem nível 0 ou 1 unidade abaixo do do pai ligação ao filho direito: horizontal 30 70 15 50 60 85 5 10 20 35 40 55 65 80 90

Árvores AA - Equilíbrio Desequilíbrio por ligação horizontal à esquerda resolve com rotação à direita (skew) 2 5 10 X P X P A B C A B C Desequilíbrio por ligação horizontal à esquerda resolve com rotação à esquerda (split) 35 40 45 R X R G X G C C A B A B

Inserção em Árvores AA skew: rotação com filho esquerdo se split: insere(Elemento x, Arvore t) if ( x < t.elemento) t.left = insere( x, t.left); else if (x > t.elemento) t.right = insere( x, t.right); else return t; t = skew(t); t = split(t); skew: rotação com filho esquerdo se t.left.level == t.level split: rotação com filho direito se t.right.right.level == t.level

Árvores AA - Inserir 3 30 70 2 15 50 60 85 1 5 10 20 35 40 45 55 65 80 90 depois de split em 35 depois de skew em 50 3 3 ... ... 70 70 2 2 ... ... 40 50 60 40 50 60 1 1 35 45 55 65 35 45 55 65

Árvores AA - Inserir depois de split em 40 3 30 50 70 2 ... 40 60 85 1 35 45 55 65 80 90 depois de skew em 70 3 30 50 70 2 ... 40 60 85 1 35 45 55 65 80 90

Árvores AA - Inserir depois de split em 30 4 50 3 30 70 2 15 40 60 85 1 5 10 20 35 45 55 65 80 90 Árvore aumentou 1 nível Crescimento é na raiz, à maneira das árvores B

Árvores AA - Remover Nó que não é folha 2 5 1 3 4 6 7 tem filho direito (se tem filho esquerdo, pela condição de Vermelho-Preto) pode substituir-se pelo menor da subárvore direita - este tem de estar ao nível 1 porque não pode ter filho esquerdo (é o menor) e se tiver filho direito é do mesmo nível para remover, descer na árvore mantendo registo do nó a apagar e do mínimo ao chegar ao fundo da árvore: substituir nó a apagar pelo mínimo e remover o mínimo ajustar nós e seus níveis, e reequilibrar se necessário Ao apagar 1: . 2 passa a ser nível 1 . 5 passa a ser nível 1 Se 5 é nível 1, . 6 e 7 são nível 1 . Ligação a 3 é horizontal . 3 e 4 são de nível 1 2 5 1 3 4 6 7

Árvores AA - Remover 2 5 2 5 6 7 3 4 1 3 4 6 7 depois de skew em 5 (com 3) depois de skew em 5 (com 4) 2 3 5 6 7 2 3 4 5 6 7 4 depois de split em 2 depois de split em 4 3 3 2 4 5 6 7 2 5 4 6 7

Treaps Características Propriedades Operações Nó da árvore: 1 elemento, 2 nós filhos e a prioridade Prioridade de um nó não inferior à do seu pai Propriedades nó de menor prioridade é raiz colecção de elementos distintos com prioridades distintas: árvore é única código simples eficiência esperada O(log N) Operações Inserção: inserir folha e rodar para cima até satisfazer prioridades Apagamento: pesquisar elemento, passar prioridade a , rodar para baixo até ser folha, apagar