Árvores Binárias Balanceadas
|
|
|
- Davi Lima Leveck
- 8 Há anos
- Visualizações:
Transcrição
1 Árvores Binárias Balanceadas Elisa Maria Pivetta Cantarelli Árvores Balanceadas Uma árvore é dita balanceada quando as suas subárvores à esquerda e à direita possuem a mesma altura. Todos os links vazios estão no mesmo nível, ou seja, que a árvore está completa. A árvore que não está balanceada, define-se como degenerada d c d b d b f a Árvore binária balanceada. b (a) f c e g a (b) e Árvore binária Degenerada f g a (c) c e g Árvore binária Incompleta Balanceada h
2 Árvores Balanceadas Balanceamento Estático O balanceamento estático de uma árvore binária consiste em construir uma nova versão, reorganizando-a. Balanceamento Dinâmico: AVL Árvore AVL em homenagem aos matemáticos russos (Adelson- Velskii e Landism -1962) Uma árvore AVL é uma árvore binária de pesquisa onde a diferença em altura entre as subárvores esquerda e direita é no máximo 1 (positivo ou negativo). A essa diferença chamamos de fator de balanceamento de n (FatBal (n)). Essa informação deverá constar em cada nó de uma árvore balanceada Árvores AVL Assim, para cada nodo podemos definir um fator de balanceamento (FB), que vem a ser um número inteiro igual a FB(nodo p) = altura(subárvore direita p) - altura(subárvore esquerda p) O Fator de uma folha é sempre Zero (0)
3 Árvores Balanceadas Exemplos de árvores AVL e árvores não-avl. Os números nos nodos representam o FB para cada nodo. Para uma árvore ser AVL os fatores de balanço devem ser necessariamente -1, 0, ou 1. Exemplos de árvores AVL Exemplos de árvores não AVL BALANCEAMENTO DE ÁRVORES AVL Inicialmente inserimos um novo nodo na árvore. A inserção deste novo nodo pode ou não violar a propriedade de balanceamento. Caso a inserção do novo nodo não viole a propriedade de balanceamento podemos então continuar inserindo novos nodos. Caso contrário precisamos nos preocupar em restaurar o balanço da árvore. A restauração deste balanço é efetuada através do que denominamos ROTAÇÕES na árvore.
4 Árvores AVL Se quisermos manter a árvore balanceada a cada inserção, devemos ter um algoritmo que ajuste os fatores de balanceamento O algoritmo corrige a estrutura através de movimentação dos nós, ao que chamamos de rotação. BALANCEAMENTO DE ÁRVORES AVL Exemplos Vamos considerar a seguinte árvore (os números ao lado dos nodos são o FB de cada nodo): A árvore acima está balanceada, como podemos observar pelos FB de cada nodo. Os casos possíveis de desbalanceamento são 2. Veremos cada um deles.
5 Tipo 1 - ROTAÇÃO DUPLA Ao inserir o número 5 na árvore. Esta inserção produziria a seguinte árvore: O nodo 8 fica com o FB -2 e tem um filho com FB +1. Neste caso o balanceamento é atingido com duas rotações, também denominada ROTAÇÃO DUPLA. Primeiro rotaciona-se o nodo com FB 1 para a esquerda. Tipo 1 - ROTAÇÃO DUPLA A árvore fica: A seguir rotaciona-se o nodo que tinha FB -2 na direção oposta (direita neste caso).
6 Tipo 1 - ROTAÇÃO DUPLA A árvore fica: Os FB nos nodos voltaram a ficar dentro do esperado das árvores AVL. O caso simétrico ao explicado acima acontece com os sinais de FB trocados, ou seja, um nodo com FB +2 com um filho com FB -1. Também utilizariamos uma rotação dupla, mas nos sentidos contrários, ou seja, o nodo com FB -1 seria rotacionado para a direita e o nodo com FB +2 seria rotacionado para a esquerda. Tipo 2 - ROTAÇÃO Simples Suponha que queremos inserir o nodo 3 na árvore inicial. A inserção produziria a seguinte árvore: A inserção do nodo 3 produziu um desbalanço no nodo 8 verificado pelo FB -2 neste nodo. Neste caso, como os sinais dos FB são os mesmos (nodo 8 com FB -2 e nodo 4 com FB -1) significa que precisamos fazer apenas uma ROTAÇÃO SIMPLES à direita no nodo com FB -2. No caso simétrico (nodo com FB 2) faríamos uma rotação simples à esquerda.
7 Tipo 2 - ROTAÇÃO Simples Após a rotação simples a árvore ficaria: Observe que os FB estão dentro do esperado para mantermos a propriedade de balanceamento de árvores AVL. A descrição do algoritmo em pseudo-código para construção de uma árvore AVL: 1. Insira o novo nodo normalmente (ou seja, da mesma maneira que inserimos numa ABB); 2. Iniciando com o nodo pai do nodo recém-inserido, teste se a propriedade AVL é violada neste nodo, ou seja, teste se o FB deste nodo é maior do que abs(1). Temos aqui 2 possibilidades: 2.1 A condição AVL foi violada Execute as operações de rotação conforme for o caso (Tipo 1 ou Tipo 2) Volte ao passo A condição AVL não foi violada. Se o nodo recém-testado não tem pai, ou seja, é o nodo raiz da árvore, volte para inserir novo nodo (Passo 1)
8 Dicas: Árvores AVL 1. Para identificarmos quando uma rotação é simples ou dupla observamos os sinais de FatBal: se o sinal for igual, a rotação é simples. se o sinal for diferente a rotação é dupla. 2. Se FB+ rotação para esquerda 3. Se FB- rotação para direita Exercícios
9 Exercício 1 Considere a inserção dos seguintes valores (nesta ordem) em uma árvore AVL: 5,3,8,2,4,7,10,1,6,9,11. Para essas inserções nenhuma rotação é necessária. Desenhe a árvore AVL resultante e determine o fator de balanceamento de cada nó. Exercício 2 Construir uma árvore AVL com os seguintes dados: Inserir inicialmente 10, 20, 30 Se necessário fazer balanceamento Inserir 25 e 27 Se necessário fazer balanceamento
10 Resolução do Exercício 2 A inserção dos 3 primeiros números resulta na seguinte árvore: Após a inserção do elemento 30 a árvore fica desbalanceada. O caso acima é do Tipo 2. Fazemos uma rotação para a esquerda no nodo com FB 2. A árvore resultante fica: Resolução do Exercício 2 O passo seguinte é inserir os nodos 25 e 27. A árvore fica desbalanceada apenas após a inserção do nodo 27 Este caso é do Tipo 1. O nodo 30 tem FB -2 e o seu nodo filho tem FB 1. Precisamos efetuar uma rotação dupla, ou seja, uma rotação simples à esquerda do nodo 25, resultando:
11 Resolução do Exercício 2 seguida de uma rotação simples à direita do nodo 30, resultando: e a árvore está balanceada. Exercício 3 Determinado sistema armazena registros por chaves numéricas em uma árvore AVL. Nessa árvore são inseridos os seguintes valores: 20,10,5,30,25,27 e 28 nessa ordem. Apresente passo a passo como a árvore vai sendo construída. Realize as rotações necessárias e indique qual rotação foi realizada em cada caso.
12 Resolução: Exercício 3 1) Inserção das chaves 20 e 10, nessa ordem A árvore ficou pendendo para a esquerda O fator de balanceamento do nó cuja chave é 20 é -1. O fator de uma folha é sempre 0 (zero). 2)...Continuar as inserções 20 (-1) 10 (0) Árvores Multivias (Multiway tree)
13 Árvores Multivias Em uma árvore binária, cada nó possui um item de dado e pode ter até dois filhos. Se permitirmos o uso de mais itens de dados e filhos por nó, o resultado é uma árvore Multivias ou M-vias (multiway tree). Uma Estrutura Multivia com algoritmo eficiente deve considerar: Tempo de acesso a cada nó Balanceamento da árvore. As árvores 2-3-4, são árvores multivias que podem ter até quatro filhos e três itens de dados por nó. Árvores Árvores são interessantes por várias razões: São árvores balanceadas. Fáceis de programar. Servem como uma introdução para árvores B.
14 Árvores A figura mostra uma pequena árvore Cada nó pode conter um, dois ou três itens de dados Árvores Um nó interno deve sempre ter um filho a mais que seus itens de dados. Um nó folha, ao contrário, não possui filhos, mas ele pode conter um, dois ou três itens de dados. Nós vazios não são permitidos. Devido a uma árvore possuir nós com até quatro filhos, ela é chamada de árvore multivias de ordem 4 (multiway tree of order 4).
15 Árvores O 2, 3 e 4 no nome árvore referem-se a quantos links para filhos podem potencialmente estar contidos em um dado nó. Para nós internos (não folhas), três combinações são possíveis: um nó com um item de dado sempre possuirá dois filhos; um nó com dois itens de dados sempre possuirá três filhos; um nó com três itens de dados sempre possuirá quatro filhos Árvores Por que uma árvore não é chamada de árvore ? Um nó não pode ter somente um filho, como os nós na árvore binária Um nó com um item de dado precisa sempre ter dois links, a menos que seja uma folha, neste caso, ele não possui links.
16 Árvores Um nó com dois links é chamado 2-nós, Um nó com três links é chamado 3-nós Um nó com quatro links é chamado 4-nós nós nós nós Árvores X Árvore Binária Em uma árvore binária, todos os filhos com chaves menores que a chave do nó estão enraizados no nó filho à esquerda, e todos os filhos com chaves maiores ou iguais a chave do nó estão enraizados no nó filho à direita. Na árvore o princípio é o mesmo, mas existe algo mais:
17 Árvores todos os itens de dados na sub-árvore enraizada no filho 0, possuem valores menores do que a chave 0; todos os itens de dados na sub-árvore enraizada no filho 1, possuem valores maiores do que a chave 0, mas menores do que a chave1; todos os itens de dados na sub-árvore enraizada no filho 2, possuem valores maiores do que a chave 1, mas menores do que a chave2; todos os itens de dados na sub-árvore enraizada no filho 3, possuem valores maiores do que a chave 2. Valores duplicados geralmente não são permitidos. Deste modo nós não necessitamos nos preocupar com a comparação de chaves iguais. A B C Nó com chaves menores do que A Nó com chaves entre A e B Nó com chaves entre B e C Nó com chaves maiores do que C Pesquisa em árvores Exemplo: Para pesquisar por um item de dado com a chave 64 na árvore da figura, você inicia na raiz, porém não encontra o item. Por que 64 é maior do que 50, você vai para o filho 1, o qual nós representamos com 60,70 e 80. Você não encontra o item de dado, assim você precisa passar para o próximo filho. Aqui, devido a 64 ser maior do que 60, mas menor do que 70, você vai novamente para o filho 1. Desta vez você encontra o item específico no link 62, 64 e
18 Inserção em árvore Novos itens de dados são sempre inseridos nas folhas. Se os itens foram inseridos em um nó com filhos, então o número de filhos necessitará ser mudado para manter a estrutura da árvore, o que estipula que esta árvore deve ter um filho a mais do que os itens de dados em um nó. O processo de inserção inicia pela pesquisa do nó folha apropriado. Se nós que não estão cheios são encontrados durante a pesquisa, a inserção é fácil. A inserção pode envolver a movimentação de um ou dois itens em um nó. As chaves deverão estar na ordem correta após o novo item ser inserido. Exemplo 1: Inserção em árvore Inserção de um item (18) sem divisão do nó a) Antes da inserção O item 23 vai ser deslocado para direita para abrir espaço para inserir o item 18. b) Depois da inserção é inserido 23 é deslocado para direita
19 Exemplo 2 - Inserção em árvore Com Divisão de nós As inserções tornam-se mais complicadas se um nó cheio é encontrado no caminho abaixo do ponto de inserção. Quando isto acontece, o nó precisa ser dividido (split). É este processo de divisão que mantêm a árvore balanceada. O tipo de árvore que estamos vendo é freqüentemente chamada de árvore topdown, por que os nós são divididos de maneira para baixo do ponto de inserção. Inserção em árvore Chamaremos os itens de dados a serem divididos por A, B e C. assumimos que o nó a ser dividido não é o raiz, nós examinaremos a divisão da raiz depois a) Antes da inserção 62 inserção do nó a ser dividido A B C
20 Inserção em árvore a) Antes da inserção 62 inserção do nó a ser dividido A B C Um novo nó vazio é criado. Ele é parente (sibling) do nó que está sendo dividido, e é colocado a sua direita; O item de dado C é movido para o novo nó; O item de dado B é movido para o pai do nó que está sendo dividido; O item de dado A fica aonde ele está; Os dois filhos mais à direita são desconectados do nó que está sendo dividido e são conectados no novo nó. b) Após a inserção movido para cima 83 fica no lugar B 104 foi p/ direita novo nó A C inserido Exemplo 3 - Inserção em árvore Dividindo a raiz Quando uma raiz cheia é encontrada no inicio da pesquisa para encontrar o ponto de inserção, o resultado da divisão é ligeiramente mais complicado: inserção do 41 a) Antes da inserção raiz a ser dividido A B C
21 Inserção em árvore um novo nó é criado, tornandose a nova raiz, e os pais do novo nó são divididos; um segundo novo nó é criado, tornando-se parente (sibling) do nó que está sendo dividido; a) Antes da inserção inserção do raiz a ser dividido A B C o item de dado C é movido para o novo nó parente; o item de dado B é movido para a nova raiz; o item de dado A é deixado aonde está; os dois filhos mais a direita do nó que está sendo dividido são desconectados dele e conectados no novo nó do lado direito. b) Após a inserção 49 é movido p/cima 26 fica no lugar 49 B novo nó raiz 72 movido 26 p/ direita 72 novo nó à direita A C inserido Árvores B
22 Árvore B São árvores de pesquisa balanceadas especialmente projetadas para a pesquisa de informação em discos magnéticos e outros meios de armazenamento secundário. Minimizam o número de operações de movimentação de dados (escrita/leitura) numa pesquisa ou alteração. O grau de um nó pode ser alto. Podem ser consideradas como uma generalização natural das árvores de pesquisa binárias. Árvores B As árvores são uma boa abordagem para dados em memória. Mas, as árvores trabalham com arquivos? Elas trabalham, mas um tipo diferente de árvore precisa ser usado para dados externos do que para dados em memória. A árvore apropriada é um árvore múltivias, parecida com uma árvore 2-3-4, mas com muito mais itens de dados por nó Ela se chama Árvore B (tree-b). As árvores B foram concebidas como estrutura apropriada para armazenamento externo por R. Bayer e E. M. McCreight em Árvores M-Vias permanentemente balanceadas são chamadas de Árvore B.
23 Árvores B - Um bloco por nó O acesso a disco é mais eficiente quando o dado é lido ou escrito em um bloco de uma só vez. Em uma árvore, a entidade que contêm dados é o nó. Ideal: armazenar um bloco inteiro de dados em cada nó da árvore. Deste modo, ler um nó acessa um conjunto máximo de dados em um curto espaço de tempo. Árvores B - Links Em uma árvore, precisamos também armazenar os links para outros nós. Em uma árvore em memória, estas ligações são referências (ou ponteiros, em linguagens como Pascal e C) para os nós em outras partes da memória. Para as árvores armazenadas em um arquivo em disco, as ligações (links) são números de blocos em um arquivo.
24 Árvores B x Árvores Dentro de cada nó os dados são ordenados seqüencialmente pela chave, como nas árvores A estrutura de uma árvore B é similar a de uma árvore 2-3-4, exceto que na árvore B existem mais itens de dados por nó e mais links para nós filhos. Árvores B Características A raiz tem no mínimo uma chave e dois filhos Uma folha tem no mínimo d chaves e não tem filhos Todas as folhas estão no mesmo nível (balanceamento)
25 Pesquisa em Árvores B Primeiro, o bloco contendo a raiz é lido. O algoritmo de pesquisa então inicia a verificação de cada um dos registros (se ele não estiver cheio, tantos quantos o nó atualmente armazena) iniciando pelo registro 0. Quando ele encontra um registro com chave maior, ele sabe que deve ir para o filho que reside entre este registro e o precedente. Este processo continua até o nó correto ser encontrado. Se uma folha é alcançada sem encontrar a chave específica, a pesquisa não obteve sucesso. Inserção em Árvores B Em uma árvore B é importante manter um nó tão cheio quanto possível; deste modo cada acesso à disco, o qual lê uma entrada de um nó, pode adquirir o máximo de quantidade de dados.
26 Construção de uma pequena árvore B A figura (a) mostra um nó raiz que já está cheio; Itens com chaves 20,40,60 e 80 já foram inseridas na árvore. Um novo item de dado com a chave 70 deve inserido, resultando na divisão de um nó. A raiz está sendo dividida, dois novos nós são criados: uma nova raiz e um novo nó para a direita do que está sendo dividido. (a) Construção de uma pequena árvore B Na figura (b) inserimos mais dois itens: 10 e 30. Eles preenchem totalmente o filho da esquerda, tal como apresentado nas figura (c). O próximo item a ser inserido, 15, divide o filho à esquerda, como visto na figura (d). Aqui o item 20 foi promovido para cima, na raiz. (b) (c) (d)
27 Construção de uma pequena árvore B Na fig. (e) três itens, 75,85 e 90, são inseridos O terceiro filho é dividido, causando a criação de um novo nó e a promoção do item intermediário, 80, para a raiz. O resultado disto é visto na figura (f). (e) (f) Construção de uma pequena árvore B Novamente três itens, 25, 35 e 50, são adicionados fig. (g) Os primeiros dois itens enchem totalmente o segundo filho E o terceiro filho é divido, provocando a criação de um novo nó e a promoção do item intermediário, 35, para a raiz, como pode ser visto na figura (h). (g) (h)
28 Construção de uma pequena árvore B Agora a raiz está cheia. Contudo, inserções subseqüentes não necessariamente causarão a divisão do nó, porque os nós são divididos somente quando uma nova inserção em um nó cheio é efetuada, não quando um nó cheio é encontrado em uma pesquisa sobre a árvore. Assim, 22 e 27 são inseridos no segundo filho sem causar qualquer divisão, como apresentado na figura (j) (i) (j) O próximo item a ser inserido, 32, não causa uma divisão, na realidade, ele causa duas divisões. O segundo nó filho, está cheio, deste modo, ele é dividido, como visto na figura (l). O item 27, promovido a partir da divisão, não foi colocado no seu lugar porque a raiz está cheia. Portanto a raiz também precisa ser dividida, resultando no arranjo presente na figura (M) (k) (l) (M)
29 Implementação em árvore B mais Eficiente Considerar T= ordem da árvore (ou grau) T>=2 Cada nó contém no mínimo T-1 chaves e T filhos Cada nó pode ter no máximo 2T-1 chaves e 2T filhos Todos os nós folhas estão no mesmo nível. Ex: t=2 t-1= 1 chave t= 2 filhos Máx: 2t-1= 3 chaves 2t= 4filhos Inserção: É sempre feita nas folhas Percorrer a árvore em busca da chave Verificar se o nó esta cheio: se contém (2T-1) chaves Se o nó estiver cheio: Dividir ao meio Colocar chave no nó pai Se este também estiver cheio repetir o processo
30 Arvores B+ É uma variante da árvore B Os nós internos são indexados para acesso rápido aos dados. As folhas possuem estrutura diferente da árvore B. Elas formam um conjunto de seqüência, de modo que varrer essa lista de folhas resulta nos dados obtidos na ordem ascendente. Ela é um índice implementado como uma árvore B regular mais uma lista ligada de dados. Arvores B+ Inserir em uma folha que tenha espaço, significa colocar a folha em ordem Inserir em uma folha cheia: A folha é dividida, o novo nó é incluído no conjunto de seqüências. A primeira chave do nono nó é copiada (não movida como na árvore B) para o ascendente. Poderá exigir reorganização no nodo ascendente Se o ascendente está cheio, ocorre mesmo processo da árvore B
31 Exemplo: Inserção em B+ Exemplo: Remoção em B+
Á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
488 Á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 professora Elisa Maria Pivetta Cantarelli intitulados
ALGORITMOS AVANÇADOS. UNIDADE V Estruturas de dados dos tipos Árvore Binária e Árvore AVL. Luiz Leão
UNIDADE V Estruturas de dados dos tipos Árvore Binária e Árvore AVL Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático 5.1 - Árvores, Árvores Binárias e Árvores Binárias de Busca
Árvores Binárias Balanceadas
Árvores Binárias Balanceadas Elisa Maria Pivetta Cantarelli Árvores Balanceadas Uma árvore é dita balanceada quando as suas subárvores à esquerda e à direita possuem a mesma altura. Todos os links vazios
Árvores. Exemplo de árvore 2-3-4
Árvores Vimos inicialmente um conceito mais amplo de árvore e depois o restringimos fixando o número máximo de filhos que um nó pode ter em dois. Posteriormente, voltamos a permitir a determinação de mais
Árvores AVL (Adelson-Velskii and Landis)
Árvores VL (delson-velskii and Landis) Universidade Federal do mazonas Departamento de Eletrônica e Computação Introdução (1) Árvore alanceada Uma árvore binária balanceada é aquela em que, para qualquer
Linguagem C: Árvores AVL
Instituto de C Linguagem C: Árvores AVL Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Árvores Balanceadas As árvores binárias de pesquisa são,
Algoritmos e Estruturas de Dados II Árvores - AVL. Prof. César Melo DCC/ICE/UFAM
Algoritmos e Estruturas de Dados II Árvores - AVL Prof. César Melo DCC/ICE/UFAM Até mais ABB, muito prazer AVL. Escreva sobre a estrutura de dados Árvore Binária de Busca(ABB). Você terá 10 minutos para
Árvores binárias de busca
Árvores binárias de busca SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Árvore binárias Árvores de grau 2, isto é, cada nó tem dois filhos, no máximo Raiz D B A E C F Terminologia: filho esquerdo filho
Estruturas de Dados. Aula 08. Árvores AVL II. Karina Mochetti
Estruturas de Dados 2018.2 Árvore AVL Uma Árvore AVL (Adelson, Velskii e Landis) T é uma Árvore Binária de Busca Balanceada, tal que: T é vazia; T consiste de um nó raiz k e duas subárvores binárias Te
Á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 Árvores AVL Os algoritmos vistos trabalham sobre a árvore toda. Se houver a necessidade de manter o balanceamento a cada inserção ou remoção, então sua eficiência fica bastante prejudicada. O balanceamento
Árvores AVL. Prof. Robinson Alves
Prof. Robinson Alves O que veremos? Conceitos Inserção Remoção Balanceamento Código Java de AVL Árvores Balanceadas As árvores binárias de pesquisa são, em alguns casos, pouco recomendáveis para as operações
Árvores binárias de busca
Árvores binárias de busca Introdução à Ciência de Computação II Diego R. Amancio Baseado no material do Prof. Thiago A. S. Pardo Árvore binárias n Árvores de grau 2, isto é, cada nó tem dois filhos, no
Árvores AVL e Árvores B. Jeane Melo
Á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
Introdução a AVL: teoria e prática. 22/11, 25/11 e 30/11
Introdução a AVL: teoria e prática 22/11, 25/11 e 30/11 Árvores binárias de busca (ABB) Árvores de grau 2, isto é, cada nó tem dois filhos, no máximo Raiz B A C Terminologia: filho esquerdo filho direito
Algoritmos e Estrutura de Dados II. Árvore AVL. Prof a Karina Oliveira. Fonte: Prof a Ana Eliza
Algoritmos e Estrutura de Dados II Árvore AVL Prof a Karina Oliveira [email protected] Fonte: Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar o número de comparações efetuadas,
INE5408 Estruturas de Dados
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
Árvore Vermelho-Preta. Estrutura de Dados II Jairo Francisco de Souza
Árvore Vermelho-Preta Estrutura de Dados II Jairo Francisco de Souza Introdução As árvores Vermelho-preto são árvores binárias de busca Também conhecidas como Rubro-negras ou Red-Black Trees Foram inventadas
Árvores Genéricas de Busca
Árvores Genéricas de Busca Árvores não binárias também podem ser usadas para buscar elementos. Essas árvores são chamadas de árvores genéricas de busca, e elas podem ser de dois tipos: árvore de busca
Árvores-B (Parte I) SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira
Árvores-B (Parte I) SCC-503 Algoritmos e Estruturas de Dados II Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Problema Cenário até então Acesso a disco é caro (lento) Pesquisa binária é útil
B-Árvores. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados
MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nos artigos Bayer, R. and E. McCreight. Organization and maintenance of large ordered
INE5408 Estruturas de Dados
INE5408 Estruturas de Dados Árvores B - Estrutura e peculiaridades - Algoritmos de inserção, pesquisa e deleção Definição Árvores B são árvores de pesquisa balanceadas especialmente projetadas para a pesquisa
Árvores B. Prof. Leandro C. Fernandes. Estruturas de Dados. Adaptado de: Leandro C. Cintra e M.C.F. de Oliveira
Árvores B Prof. Leandro C. Fernandes Estruturas de Dados Adaptado de: Leandro C. Cintra e M.C.F. de Oliveira A invenção da árvore-b Bayer and McGreight, 1972, publicaram o artigo: "Organization and Maintenance
Árvores AVL (Balanceadas) Profª.Drª. Roseli Ap. Francelin Romero Fonte: Profa. Patrícia Marchetti Revisão: Gedson Faria
SCE 182 SCC122 Algoritmos Estruturas e Estruturas de Dados de Dados I Árvores AVL (Balanceadas) Profª.Drª. Roseli Ap. Francelin Romero Fonte: Profa. Patrícia Marchetti Revisão: Gedson Faria Árvores AVL
Acesso Sequencial Indexado
Acesso Sequencial Indexado Utiliza o princípio da pesquisa seqüencial cada registro é lido seqüencialmente até encontrar uma chave maior ou igual a chave de pesquisa. Providências necessárias para aumentar
Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Árvores Binárias de Busca
Árvores AVL Árvores Binárias de Busca Altura de uma árvore binária (AB): igual à profundidade, ou nível máximo, de suas folhas A eficiência da busca em árvore depende do seu balanceamento Algoritmos de
Á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
SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas
ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORE B Vanessa Braganholo Estruturas de Dados e Seus Algoritmos INTRODUÇÃO 2 ARQUIVOS DE ACESSO DIRETO Basicamente, duas formas de acesso a um registro: Acesso via cálculo do endereço do registro (hashing)
Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo
PMR2300 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó (exceto a
ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres
ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS Cristina Boeres Árvore Binária - altura máxima Seja a árvore A formada com as seguintes inserções! 1, 2, 3, 4, 5, 6 e 7 1 2 3 4! Pior caso: O(n) 5 6
Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura
Árvores B Prof. Márcio Bueno [email protected] / [email protected] Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes
Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza
Árvores B Árvores B Estrutura de Dados II Jairo Francisco de Souza Motivação Quando tabelas são muito grandes Armazenamento do conjunto de chaves não pode ser efetuado na memória principal Necessário uso
Dicionários. TAD Orientado a conteúdo
Dicionários TAD Orientado a conteúdo Dicionários efinição: Tipo abstrato de dados orientado a onteúdo. Contrasta com as PILHAs e FILAs que são orientadas a posição. perações implementadas: Inserir(d,x)
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
B-tree B-Trees Material da Prof. Denise Bandeira, aula de Christian Hofsetz B-Trees são árvores balanceadas. Diferente das árvores binárias, os nós de uma B-tree podem ter um número variável de nodos filho.
Árvores Binárias de Busca
Árvores AVL Árvores Binárias de Busca Altura de uma árvore binária (AB): igual à profundidade, ou nível máximo, de suas folhas A eficiência da busca em árvore depende do seu balanceamento Algoritmos de
Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza
Árvores B Árvores B Estrutura de Dados II Jairo Francisco de Souza Motivação Quando tabelas são muito grandes Armazenamento do conjunto de chaves não pode ser efetuado na memória principal Necessário uso
Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome
Árvores Vermelho-Preto
Árvores Vermelho-Preto SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências Matemáticas e de Computação (ICMC)
ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres
ESTRUTURA DE DADOS E ALGORITMOS Árvores Binárias de Busca Cristina Boeres Árvore Binária de Busca 30! construída de tal forma que, para cada nó: nós com chaves menores estão na sub-árvore esquerda nós
Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Armazenamento em disco com uso de índices
Armazenamento em disco com uso de índices Vimos até o momento árvores onde a chave aparenta ser o único objeto de interesse. Contudo, como sugere a representação de um nó, constante no slide 82, a chave
UNILASALLE Curso de Bacharelado em Ciência da Computação. Estrutura de Dados II Prof. Magalí T. Longhi. Árvores AVL*
UNILASALLE Curso de Bacharelado em Ciência da Computação Estrutura de Dados II Prof. Magalí T. Longhi Árvores AVL* * Material preparado para a disciplina de Estrutura de Dados II do Curso de Bacharelado
Árvores B. Prof. Flávio Humberto Cabral Nunes
Árvores B Prof. Flávio Humberto Cabral Nunes Conteúdo 1. Introdução 2. Busca 3. Inserção 4. Remoção 5. B* 6. B+ Capítulo: 8 (APOSTILA). Introdução Em muitas aplicações, a tabela considerada é muito grande
SCC Algoritmos e Estruturas de Dados II. 6ª lista de exercícios
DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÂO SCC0203 - Algoritmos e Estruturas de Dados II 6ª lista de exercícios Questão 1 Explique a seguinte sentença: Árvores-B são construídas de baixo para cima, enquanto
Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Árvores (parte 3) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.
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
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Exercícios: Árvores 1. Utilizando os conceitos de grafos, defina uma árvore.
Aula 16 Árvores Patricia e Árvores B
MC3305 Algoritmos e Estruturas de Dados II Aula 16 Árvores Patricia e Árvores B Prof. Jesús P. Mena-Chalco [email protected] 2Q-2015 1 TRIE originado de 'Information retrieval' TRIE = digital tree
Estruturas de Dados. Árvores AVL: Partes I e II. Desempenho de ABBs (Revisão)
Estruturas de Dados Árvores AVL: Partes I e II Prof. Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis em http://ww3.datastructures.net (Goodrich
Árvores. Estruturas de Dados. Prof. Vilson Heck Junior
Árvores Estruturas de Dados Prof. Vilson Heck Junior Árvores INTRODUÇÃO Introdução Árvores são estruturas de dados utilizadas para armazenar e recuperar dados de forma rápida e eficiente; Árvores não são
Uma árvore binária de busca não garante acesso em tempo logarítmico.
Á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
Árvores Binárias e AVL Felipe Barros Pontes Gustavo Márcio de Morais Cunha Márcio de Medeiros Ribeiro
Universidade Federal de Alagoas - UFAL Departamento de Tecnologia da Informação - TCI Ciência da Computação Árvores Binárias e AVL Felipe Barros Pontes Gustavo Márcio de Morais Cunha Márcio de Medeiros
Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias
Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias Conceitos gerais Representação por Contiguidade Física Representação por Encadeamento Operações 2 Conceitos gerais Uma árvore
INF1010 Lista de Exercícios 2
INF00 Lista de Exercícios 2 Árvores. Construir algoritmo para dada uma árvore n-ária, transformá-la em uma árvore binária. 2. Qual a maior e menor quantidade de nós que podem existir em uma árvore binária
Árvores Binárias de Busca (ABB) 18/11
Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:
Árvores. Prof. César Melo ICOMP/UFAM
Árvores Prof. César Melo ICOMP/UFAM Introdução v Árvore é uma estrutura adequada para representar hierarquias Diretórios em um computador Serviço de resolução de nomes na Internet v A forma mais natural
Árvores Binárias de Busca
Árvores Binárias de Busca SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática
Árvores Rubro-Negras. Árvores Rubro-Negras. (Vermelho-Preta) Estrutura da Árvore. Estrutura da Árvore
Árvores Rubro-Negras Árvores Rubro-Negras (Vermelho-Preta) Árvore Binária de Pesquisa (ABP) com nodos coloridos de vermelho e preto Árvore balanceada Qualquer caminho da raiz até as folhas, nenhum caminho
Listas de Prioridade. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC.
Listas de Prioridade Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Capítulo 6 Prioridade } Algumas aplicações precisam recuperar rapidamente um dado
1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó.
1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó. b. Achar o maior elemento (campo numérico) de uma árvore binária dada. c. Trocar
Métodos de Pesquisa de Dados (II) Árvore N-ária de Pesquisa
UFSC-CTC-INE INE5384 - Estruturas de Dados Métodos de Pesquisa de Dados (II) Prof. Ronaldo S. Mello 2002/2 Árvore N-ária de Pesquisa Uma Árvore N-ária de Pesquisa (ANP) é uma árvore que: contém m subárvores
Aula 19 Árvores Rubro-Negras
Algoritmos e Estruturas de Dados I Aula 19 Árvores Rubro-Negras Prof. Jesús P. Mena-Chalco [email protected] Q1-2017 1 Árvores de Busca Binária Por que ABBs? São estruturas eficientes de busca (se
Algoritmos e Estruturas de Dados I Aula 15 Árvores de busca balanceadas (e mais...)
Algoritmos e Estruturas de Dados I Aula 15 Árvores de busca balanceadas (e mais) Prof. Jesús P. Mena-Chalco Q1-2019 1 Árvores de Busca Binária Por que ABBs? São estruturas eficientes de busca (se a árvore
Aula 13 Árvores Rubro-Negras
MC3305 Algoritmos e Estruturas de Dados II Aula 13 Árvores Rubro-Negras Prof. Jesús P. Mena-Chalco [email protected] 2Q-2015 1 Árvores de Busca Binária Por que ABBs? São estruturas eficientes de
Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas
Árvores Binárias de Busca (ABB) 18/11
Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:
Edital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 032/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
A inserção da chave 6 da árvore acima resulta na árvore abaixo.
149 Árvores B+ As operações nas árvores B+ não são muito diferentes das operações das árvores B. Inserir uma chave em uma folha que ainda tenha algum espaço exige que se coloque as chaves desta folha em
