Aula 13 Árvores Rubro-Negras

Documentos relacionados
Aula 19 Árvores Rubro-Negras

Algoritmos e Estruturas de Dados I Aula 15 Árvores de busca balanceadas (e mais...)

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

Árvores Vermelho-Preto

Árvores Vermelho-Preto

Aula 10 Árvores Adelson-Velskii e Landis

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

Árvores Rubro-Negra IFRN

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

Árvores AVL e Árvores B. Jeane Melo

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

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

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

GGI026 - Árvore rubro-negra

Árvores Rubro-Negras Letícia Rodrigues Bueno

Árvore Binária de Busca. Algoritmos e Estrutura de Dados II. Operações Busca e Sucessor. Árvore Binária de Busca. Árvores Rubro-Negras

Aula 13 Árvores Adelson-Velskii e Landis

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

Linguagem C: Árvores AVL

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

Aula 07: Algoritmos de busca e Listas encadeadas

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

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

Árvores Binárias Balanceadas Estrutura de Dados I

INF1010 Lista de Exercícios 2

Dicionários. TAD Orientado a conteúdo

Aula 16 Árvores Patricia e Árvores B

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

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

Aula 18 Árvores B e parâmetros de compilação

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

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

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

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

Árvores binárias de busca

Algoritmos e Estruturas de Dados I

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

MC3305 Algoritmos e Estruturas de Dados II. Aula 06 Árvores. Prof. Jesús P. Mena-Chalco.

Árvores Binárias de Busca

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

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

Árvores binárias de busca

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

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

Árvores Binárias de Busca

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

Árvores Binárias de Pesquisa Equilibradas

Árvores Binárias de Busca

Aula 19 Conjuntos disjuntos (Union-find)

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

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

Árvores Equilibradas. Sumário

A Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Árvores Binárias de Busca. Árvores Binárias de Busca. Introdução

Estruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1

Árvores Binárias Balanceadas

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

MC3305 Algoritmos e Estruturas de Dados II. Aula 02 Hashing. Prof. Jesús P. Mena-Chalco.

SCC Algoritmos e Estruturas de Dados II. 6ª lista de exercícios

Árvores Binárias de Busca

Árvore Binária de Busca

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

Árvores balanceadas. Aleardo Manacero Jr.

A Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Introdução. Leandro C. Cintra Maria Cristina F. de Oliveira. Solução?

Árvores B Partes I e II

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

Estruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1

Aula 13: Listas encadeadas (estruturas lineares)

ÁRVORE AVL. Problema do balanceamento

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

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

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

INE5408 Estruturas de Dados

Árvores de Pesquisa (Parte II)

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

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

GGI026 - Árvore rubro-negra - Remoção

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

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

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

Árvores de pesquisa. Árvores de pesquisa equilibradas

Árvores B. Árvores B Parte II. Características. Características. Construção Bottom-Up. Leandro C. Cintra Maria Cristina F. de Oliveira.

Análise e Projeto de Algoritmos

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

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

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

ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres

Hashing convencional...

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 AVL. Prof. Robinson Alves

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

Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256

Algoritmos e Estruturas de Dados I

Árvores-B (Parte I) SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira

Aula 15 Árvores Digitais / Trie

Hashing. Hashing. Hashing versus Indexação. Hashing. Hashing convencional... Exemplo de espalhamento. Revisão...

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

Á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

Transcrição:

MC3305 Algoritmos e Estruturas de Dados II Aula 13 Árvores Rubro-Negras Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2015 1

Árvores de Busca Binária Por que ABBs? São estruturas eficientes de busca (se a árvore estiver balanceada). Permitem minimizar o tempo de acesso no pior caso. Complexidade das operações de busca, inserção, remoção: Se balanceada O(lg (n)) Senão O(n) 2

Árvores balanceadas As seguintes árvores são as ditas balanceadas com altura O(lg(n)): AVL Rubro-negras / vermelho-preto / red-black tree B As árvores Rubro-negras apresentam uma altura de, no máximo, igual a 2 lg(n+1). 3

Árvores balanceadas 4

Árvore Rubro-Negra Rudolf Bayer Computer scientist 5

Árvore Rubro-Negra Somente em 1978, Leo Guibas e Robert Sedgewick, atribuiram a 'coloração' na árvore. A cor "vermelho" foi escolhida porque era a mais bonita produzida pela impressora laser a cores disponíveis para os autores, enquanto trabalhavam na Xerox PARC. 6

Árvore Rubro-Negra As ARN possuem um bit extra para armazenar a cor de cada nó, que pode ser VERMELHO ou PRETO. 7

Árvore Rubro-Negra 8

Propriedades de Árvore Rubro-Negra Quando um nó não possui um filho (esquerdo ou direito) então podemos supor que ao invés de apontar para nulo (nil), ele aponta para um nó fictício, que será uma folha da árvore. Assim, todos os nós internos contêm chaves e todas as folhas são nós fictícios. 9

Propriedades de Árvore Rubro-Negra As propriedades da árvore rubronegra são: 1- Todo nó da árvore ou é vermelho ou é preto 2- A raiz e as folhas (nil) são pretas 3- Se um nó é vermelho, então seus filhos são pretos 4- Para todo nó, todos os caminhos do nó até as folhas descendentes contêm o mesmo número de nós pretos. 10

Propriedades de Árvore Rubro-Negra As propriedades da árvore rubronegra são: 1- Todo nó da árvore ou é vermelho ou é preto 2- A raiz e as folhas (nil) são pretas 3- Se um nó é vermelho, então seus filhos são pretos 4- Para todo nó, todos os caminhos do nó até as folhas descendentes contêm o mesmo número de nós pretos. 11

Propriedades de Árvore Rubro-Negra As propriedades da árvore rubronegra são: 1- Todo nó da árvore ou é vermelho ou é preto 2- A raiz e as folhas (nil) são pretas 3- Se um nó é vermelho, então seus filhos são pretos 4- Para todo nó, todos os caminhos do nó até as folhas descendentes contêm o mesmo número de nós pretos. 12

Propriedades de Árvore Rubro-Negra As propriedades da árvore rubronegra são: 1- Todo nó da árvore ou é vermelho ou é preto 2- A raiz e as folhas (nil) são pretas 3- Se um nó é vermelho, então seus filhos são pretos 4- Para todo nó, todos os caminhos do nó até as folhas descendentes contêm o mesmo número de nós pretos. 13

Quais das árvores abaixo são rubro-negras? b) a) c) 14

Exemplo de Árvore Rubro-Negra 15

Exemplo de Árvore Rubro-Negra 16

Quais das árvores abaixo são rubro-negras? Raiz vermelha! Caminhos da raiz as folhas devem ter o mesmo número de pretos ok b) a) c) Não deve existir Dois nós Vermelhos consecutivos Nó vermelho deve ter filhos pretos! Caminhos da raiz as folhas devem ter o mesmo número de pretos 17

Altura de uma Árvore Rubro-Negra As ARNs com n nós/chaves internas tem altura, no máximo, igual a 2 lg(n+1) = O(log(n)) A prova é por indução. Ver detalhes no livro de Cormen et al. 18

Altura de uma Árvore Rubro-Negra Intuição Junte os nós vermelhos aos seus pais pretos. 19

Altura de uma Árvore Rubro-Negra Intuição Junte os nós vermelhos aos seus pais pretos. 20

Altura de uma Árvore Rubro-Negra Intuição Junte os nós vermelhos aos seus pais pretos. 21

Altura de uma Árvore Rubro-Negra Intuição Junte os nós vermelhos aos seus pais pretos. 22

Altura de uma Árvore Rubro-Negra Intuição Junte os nós vermelhos aos seus pais pretos. 23

Altura de uma Árvore Rubro-Negra Intuição Junte os nós vermelhos aos seus pais pretos. h Tal processo produz uma árvore em que cada nó possui 2, 3 ou 4 filhos (árvore 2-3-4) 24

Árvore 2-3-4 25

Árvore 2-3-4 26

Atividade: Árvore 2-3-4 27

Atividade: Árvore 2-3-4 28

Atividade: Árvore 2-3-4 29

Altura de uma Árvore Rubro-Negra Intuição Junte os nós vermelhos aos seus pais pretos. h Tal processo produz uma árvore em que cada nó possui 2, 3 ou 4 filhos (árvore 2-3-4) 30

Altura de uma Árvore Rubro-Negra h h 31

Altura de uma Árvore Rubro-Negra h h Já que no máximo metade nos nós de qualquer caminho são vermelhos. 32

Altura de uma Árvore Rubro-Negra h h Número de folhas 33

Altura de uma Árvore Rubro-Negra h h Número de folhas = n+1 34

Altura de uma Árvore Rubro-Negra h h Número de folhas = n+1 35

Altura de uma Árvore Rubro-Negra As ARNs com n nós/chaves internas tem altura, no máximo, igual a 2 lg(n+1) = O(log(n)) A prova é por indução. Ver detalhes no livro de Cormen et al. 36

Altura de uma Árvore Rubro-Negra Nenhum caminho é maior do que duas vezes o comprimento de qualquer outro caminho 37

Operações em uma Árvore Rubro-Negra Esse resultado mostra a importância e utilidade de uma ARN, pois a busca, inserção e remoção têm complexidade de tempo de O(h) = O(log n) A busca em uma ARN é idêntica à busca em ABBs simples. 38

AVL x RN? 39

AVL x RN Altura de uma árvore AVL: ~1.44lg(n) Altura de uma árvore RN: ~2lg(n) Inserções de elementos: Na prática menos rotações são realizadas nas árvores RN. As rotações em árvores AVL são mais difíceis de implementar. 40

41

Alinhado para endereçamento de memória 12 bytes 6 bytes 8 bytes 42

43

25 bytes 44

25 bytes 24 bytes Assumindo que as chaves serão todas positivas: O sinal pode indicar Red / Black 45

Operações nas árvore RN 46

Operações em uma Árvore Rubro-Negra Inserções e remoções feitas em uma ARN podem modificar a sua estrutura. Precisamos garantir que nenhuma das propriedades seja violada. Para isso podemos ter que mudar a estrutura da árvore e as cores de alguns dos nós da árvore. A mudança da estrutura da árvore é feita por dois tipos de rotações em ramos da árvore: Rotação à esquerda Rotação à direita 47

Altura Negra É o número de nós negros encontrados até qualquer nó folha descendente. 48

Inserção de elementos Um nó sempre é inserido na cor vermelha, assim não altera a altura negra da árvore. 49

Inserção de elementos Se o nó fosse inserido na cor preta, invalidaria a propriedade 4, pois haveria um nó preto a mais em um dos caminhos 50

Inserção de elementos A inserção começa por uma busca da posição onde o nó deve ser inserido, partindo-se da raiz em direção aos nós que possuam o valor mais próximo do qual vai ser inserido. 23 51

Inserção de elementos A inserção começa por uma busca da posição onde o nó deve ser inserido, partindo-se da raiz em direção aos nós que possuam o valor mais próximo do qual vai ser inserido. 23 23 52

Inserção CASO 1: Caso a inserção seja feita em uma árvore vazia, basta alterar a cor do nó para preto, satisfazendo assim a propriedade 2. 53

Inserção CASO 2: Ao inserir x, se o tio de x é vermelho, é necessário fazer a recoloração de a, t, p. 54

Inserção CASO 2: Ao inserir x, se o tio de x é vermelho, é necessário fazer a recoloração de a, t, p. Obs1: Se o pai de a é vermelho o rebalanceamento tem que ser feito novemente. Obs2: Se a é raiz, então ele deve ser preto. 55

Inserção CASO 3: Suponha que o tio de x é preto. Nesse caso, para manter a propriedade 3 é preciso fazer rotações envolvendo x, p, t, a. 56

Inserção CASO 3: Suponha que o tio de x é preto. Nesse caso, para manter a propriedade 3 é preciso fazer rotações envolvendo x, p, t, a. 3a 3b 3c 3d 57

Inserção CASO 3a: Rotação à direita 58

Inserção CASO 3a: Rotação à direita p x a t 59

Inserção CASO 3a: Rotação à direita p x a t 60

Inserção CASO 3a: Rotação à direita 61

Inserção CASO 3b: Rotação à esquerda 62

Inserção CASO 3c: Rotação dupla esquerda 63

Inserção CASO 3d: Rotação dupla direita 64

Exemplo 1 Estado inicial da árvore: 65

Exemplo 1 Inserção do nó '7'. 66

Exemplo 1 Inserção do nó '7'. 3 67

Exemplo 1 Rotação à esquerda: nós 5,6 e 7. 3 68

Exemplo 1 Rotação à esquerda: nós 5,6 e 7. Alteração de cor dos nós 5 e 6. 69

Exemplo 2 Estado inicial da árvore: 70

Exemplo 2 71

Exemplo 2 CASO 2: O tio do elemento inserido é vermelho. 3 72

Exemplo 2 CASO 2: O tio do elemento inserido é vermelho. 73

Exemplo 2 3 74

Exemplo 2 3 75

Exemplo 2 76

Lista 03 (1) O que acontece com a inserção do valor 14 na árvore abaixo? Após isso, o que acontece após a eliminação do valor 18? Forneça apenas as árvores rubro-negra resultantes. 18 22 10 3 13 12 27 16 (2) Forneça a árvore rubro-negra resultante da inserção da sequência 10, 6, 4, 5, 0, 3, 9, 2, 1, 8, 7, -1, -2, -3. 77

Lista 03 (3) Para cada uma das seguintes afirmações indique se é verdadeira ou falsa. Justifique ou exemplifique. As sub-árvores esquerda e direita da raíz de uma árvore RN são sempre árvores RN. A recoloração de um dado nó pode-se propagar até a raiz da árvore RN. Envio até 23/07 (23h50-Tidia) Pode ser elaborado por até 2 alunos. Envie apenas um arquivo PDF, e.g., lista-03.pdf 78