Árvores AVL IAED, 2014/2015

Tamanho: px
Começar a partir da página:

Download "Árvores AVL IAED, 2014/2015"

Transcrição

1 Árvores AVL IAED, 24/25

2 Resumo da aula de hoje Recapitular algumas ideias da última aula Pesquisa, inserção, remoção & travessias em árvores binárias de pesquisa. Árvores binárias equilibradas Exemplo: Rotações, pesquisa, inserção e remoção em AVL trees Exercícios 2 IAED, 24/25

3 Estrutura de uma Árvore Binária #include "Item.h" typedef struct node { Item item; l r struct node *l; struct node *r; } *link; l r l r 3 IAED, 24/25

4 Árvores de Procura Binárias (BST) Nós na sub-árvore esquerda tem chaves menores ou iguais que a raíz Nós na sub-árvore direita tem chaves maiores ou iguais que a raíz IAED, 24/25

5 Árvores de Procura Binárias (BST) Vamos procurar o 2 No pior caso, a pesquisa escala com a profundidade da árvore IAED, 24/25

6 Inserção de um novo elemento Vamos inserir o elemento IAED, 24/25

7 Remoção de um elemento Mais difícil: 3 possibilidades IAED, 24/25

8 Exemplos: Remoção de um elemento. Se o nó não tiver filhos à fácil... Basta apagar. 2. Se o nó tiver um só filho... Também é fácil. 3. Remoção de um nó interno:. substituímos o elemento a remover pelo maior dos elementos à esquerda do elemento a ser removido. 2. removemos esse elemento (que estará necessariamente nas condições ou 2) 2 IAED, 24/25

9 Travessia em Pre-Order Visita raíz antes dos filhos: Output: 2, 2, 8, 2, 9, 8, 32, 23, 45 void traverse(link h) { 2 if (h == NULL) return; visit(h->item); 2 32 traverse(h->l); traverse(h->r); } IAED, 24/25

10 Travessia em In-Order (sorted!!) Visita a raíz depois de visitar o filho esquerdo e antes de visitar o direito Output: 2, 8, 9, 2, 8, 2, 23, 32, 45 void traverse(link h) { } if (h == NULL) return; traverse(h->l); visit(h); traverse(h->r); IAED, 24/25

11 Travessia em Post-Order Apenas visita a raíz depois de visitar o filho direito e o esquerdo Output: 2, 9, 8, 8, 2, 23, 45, 32, 2 void Exemplo traverse(link de aplicação: avaliação h) de expressões posfixadas 2 { if (h == NULL) 2 32 return; } traverse(h->l); traverse(h->r); visit(h); IAED, 24/25

12 Pesquisas em BST Geralmente eficiente: O(log N) No pior caso, ON ( ) para uma árvore desequilibrada Ordem de inserção:,2,3,4,5,6,7,8 No caso de chaves aleatórias, O(log N) Comparação com pesquisa binária em tabelas: Tempo de pesquisa comparável Tempo de inserção muito mais rápido ON ( ) 6 IAED, 24/25

13 Árvores Binárias Equilibradas Evitam o pior caso de ON ( ) Algum overhead na construção Alternativa: Reequilibrar uma árvore, depois de construída Usar aleatoriedade Usar técnicas especiais de construção (AVL, Red-Black, etc) 3 D 4 E 5 F 2 C B A 7 IAED, 24/25

14 Árvores AVL (Adelson-Velskii e Landis) BST em que, para cada nó interno, a profundidade (height) de ambos os filhos difere, no máximo, em Height Nota: Estamos a considerar que a profundidade de uma folha = 8 IAED, 24/25

15 Árvores AVL (Adelson-Velskii e Landis) Será que esta árvore esta equilibrada? IAED, 24/25

16 Inserção em Árvores AVL Inserção de um elemento pode desequilibrar a árvore IAED, 24/25

17 Inserção em Árvores AVL Inserção de um elemento pode desequilibrar a árvore Vamos inserir o! Height IAED, 24/25

18 Inserção em Árvores AVL Inserção de um elemento pode desequilibrar a árvore Height IAED, 24/25

19 Inserção em Árvores AVL Inserção de um elemento pode desequilibrar a árvore árvore desequilibrada! Height IAED, 24/25

20 Inserção em Árvores AVL Pode ser necessário equilibrar após a inserção árvore desequilibrada! Height IAED, 24/25

21 Inserção em Árvores AVL árvore equilibrada! Height IAED, 24/25

22 Inserção em Árvores AVL Em vez da altura (height) podemos analisar directamente o balance factor = height (left) height (right) árvore equilibrada! Height IAED, 24/25

23 Inserção em Árvores AVL Em vez da altura (height) podemos analisar directamente o balance factor = height (left) height (right) árvore equilibrada! Balance factor IAED, 24/25

24 Operações de Rotação - Esquerda link rotl(link h) { link x = h->r; } h->r = x->l; x->l = h; return x; D F h H x D h F G x H I B E G I B E A C A C 29 IAED, 24/25

25 Operações de Rotação - Direita link rotr(link h) { link x = h->l; } h->l = x->r; x->r = h; return x; D h B H x A C F I A B C D E F x H h E G G I 3 IAED, 24/25

26 Inserção em Árvores AVL Inserir novo elemento, numa folha, como numa BST normal Percorrer o caminho desde a nova folha até à raíz Para cada nó encontrado, verificar se as alturas dos dois filhos (esquerdo e direito) não diferem em mais do que Se diferirem, equilibrar a sub-árvore com raíz nesse nó, efectuando uma rotação (simples ou dupla) Após equilibrar a sub-árvore com raíz num determinado nó x, não será necessário equilibrar as sub-árvores com raíz nos antepassados de x Terminar após uma equilibragem, ou quando atingirmos a raíz 3 IAED, 24/25

27 Equilibragem de Árvores AVL Rotação Simples I (left) A B C A B C 32 rotação esquerda IAED, 24/25

28 Equilibragem de Árvores AVL Rotação Simples II (right) A B C A B C 33 rotação direita IAED, 24/25

29 AVL Ex. : Inserção com rotações simples Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos inserir o elemento Balance factor IAED, 24/25

30 AVL Ex. : Inserção com rotações simples Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos inserir o elemento 8 Esta BST está equilibrada? Balance factor IAED, 24/25

31 AVL Ex. : Inserção com rotações simples Agora vamos introduzir o elemento 9... Está equilibrada? NÃO!!!! Vamos subir do 9 em direção à raiz até encontrar um elemento desequilibrado Balance factor IAED, 24/25

32 AVL Ex. : Inserção com rotações simples Para equilibrar, basta fazer uma rotação simples para a direita (rotr) aplicada ao elemento IAED, 24/25

33 AVL Ex. : Inserção com rotações simples Para equilibrar, basta fazer uma rotação simples para a direita (rotr) aplicada ao elemento 27...e já está!!! IAED, 24/25

34 AVL Ex. : Inserção com rotações simples RECEITA : Quando o novo nó é inserido na sub-árvore da esquerda, da subárvore da esquerda do elemento desequilibrado, basta-nos aplicar uma IAED, 24/25 rotr a esse elemento.

35 AVL Ex. 2: Inserção com rotações simples Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos inserir o elemento IAED, 24/25

36 AVL Ex. 2: Inserção com rotações simples Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos inserir o elemento IAED, 24/25 9

37 AVL Ex. 2: Inserção com rotações simples Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos inserir o elemento RECEITA 2: Quando o novo nó é inserido na sub-árvore da direita, da sub-árvore da direita, do elemento desequilibrado, basta-nos aplicar uma rotl a esse 42 elemento IAED, 24/25 9

38 AVL Ex. 2: Inserção com rotações simples Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) RESULTADO FINAL: IAED, 24/25

39 AVL Ex. 3: Inserção com rotações duplas Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos inserir o elemento IAED, 24/25

40 AVL Ex. 3: Inserção com rotações duplas Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos inserir o elemento 56 Receita 3: O novo nó é inserido na sub-árvore da direita, da sub-árvore da esquerda do elemento desequilibrado!! O que fazer? Rotação dupla Esquerda-Direita IAED, 24/25

41 Equilibragem de Árvores AVL Rotação Dupla I Esquerda-Direita A B C A B C 46 rotação esquerda IAED, 24/25

42 Equilibragem de Árvores AVL Rotação Dupla I (cont) Esquerda-Direita A B C A B C 47 rotação esquerda, direita IAED, 24/25

43 Equilibragem de Árvores AVL Rotação Dupla II Direita-Esquerda A B C A B C 48 rotação direita IAED, 24/25

44 Equilibragem de Árvores AVL Rotação Dupla II (cont) Direita-Esquerda A B C A B C 49 rotação direita, esquerda IAED, 24/25

45 AVL Ex. 3: Inserção com rotações duplas Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos inserir o elemento 56 Receita 3: O novo nó é inserido na sub-árvore da direita, da sub-árvore da esquerda do elemento desequilibrado!! O que fazer? Rotação dupla Esquerda-Direita rotl 56 5 IAED, 24/25

46 AVL Ex. 3: Inserção com rotações duplas Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos inserir o elemento 56 Receita 3: O novo nó é inserido na sub-árvore da direita, da sub-árvore da esquerda do elemento desequilibrado!! O que fazer? Rotação dupla Esquerda-Direita rotl 5 5 IAED, 24/25

47 AVL Ex. 3: Inserção com rotações duplas Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos inserir o elemento 56 Receita 3: O novo nó é inserido na sub-árvore da direita, da sub-árvore da esquerda do elemento desequilibrado!! O que fazer? Rotação dupla Esquerda-Direita rotr 5 52 IAED, 24/25

48 AVL Ex. 3: Inserção com rotações duplas Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos inserir o elemento 56 Receita 3: O novo nó é inserido na sub-árvore da direita, da sub-árvore da esquerda do elemento desequilibrado!! O que fazer? Rotação dupla Esquerda-Direita rotr 53 IAED, 24/25

49 AVL Ex. 3: Inserção com rotações duplas Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos inserir o elemento 56 RESULTADO FINAL: IAED, 24/25

50 AVL Ex. 4: Inserção com rotações duplas Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Depois de inserir o elemento 65 temos: IAED, 24/25

51 AVL Ex. 4: Inserção com rotações duplas Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Depois de inserir o elemento 65 temos: Receita 4: O novo nó é inserido na sub-árvore da esquerda, da sub-árvore da direita do elemento desequilibrado!! O que fazer? Rotação dupla Direita-Esquerda IAED, 24/25 rotr

52 AVL Ex. 4: Inserção com rotações duplas Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Depois de inserir o elemento 65 temos: Receita 4: O novo nó é inserido na sub-árvore da esquerda, da sub-árvore da direita do elemento desequilibrado!! O que fazer? Rotação dupla Direita-Esquerda IAED, 24/25 rotr

53 AVL Ex. 4: Inserção com rotações duplas Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Depois de inserir o elemento 65 temos: rotl Receita 4: O novo nó é inserido na sub-árvore da esquerda, da sub-árvore da direita do elemento desequilibrado!! O que fazer? Rotação dupla Direita-Esquerda IAED, 24/25

54 AVL Ex. 4: Inserção com rotações duplas Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Depois de inserir o elemento 65 temos : rotl Receita 4: O novo nó é inserido na sub-árvore da esquerda, da sub-árvore da direita do elemento desequilibrado!! O que fazer? Rotação dupla Direita-Esquerda IAED, 24/25

55 AVL Ex. 4: Inserção com rotações duplas Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Depois de inserir o elemento 65 temos (resultado final): IAED, 24/25

56 Resumo Caso : Se o novo nó é inserido na sub-árvore da esquerda, da subárvore da esquerda do elemento desequilibrado, basta-nos aplicar uma rotação simples para a direita aplicada a esse elemento. Caso 2: Se o novo nó é inserido na sub-árvore da direita, da sub-árvore da direita do elemento desequilibrado, basta-nos aplicar uma rotação simples para a esquerda aplicada a esse elemento. Caso 3: Se o novo nó é inserido na sub-árvore da direita, da sub-árvore da esquerda do elemento desequilibrado, fazemos uma rotação dupla Esquerda-Direita Caso 4: Se o novo nó é inserido na sub-árvore da esquerda, da subárvore da direita do elemento desequilibrado, fazemos uma rotação dupla Direita-Esquerda 6 IAED, 24/25

57 Remoção em Árvores AVL Remoção de um elemento pode desequilibrar a árvore Balance factor IAED, 24/25

58 Remoção em Árvores AVL Remoção de um elemento pode desequilibrar a árvore árvore desequilibrada! IAED, 24/25

59 Remoção em Árvores AVL Remover um nó como numa BST normal Percorrer o caminho desde o nó removido até à raíz Para cada nó encontrado, verificar se as alturas dos dois filhos (esquerdo e direito) não diferem em mais do que Se diferirem, equilibrar a sub-árvore com raíz nesse nó, efectuando uma rotação simples ou uma rotação dupla Após equilibrar a sub-árvore com raíz num determinado nó x, poderá ser necessário equilibrar as sub-árvores com raízes nos antepassados de x Terminar apenas quando atingirmos a raíz 64 IAED, 24/25

60 AVL Ex. 5: Remoção de nós Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos remover o elemento 72: IAED, 24/25

61 AVL Ex. 5: Remoção de nós Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos remover o elemento 72: 2 45 rotr IAED, 24/25

62 AVL Ex. 5: Remoção de nós Considere a árvore em baixo. Os números ao lado correspondem ao balance factor = height (left) height (right) Vamos remover o elemento 72: IAED, 24/25

63 Pesquisa em Árvores AVL Pesquisa é realizada como numa árvore BST normal Pesquisa não altera a árvore 68 IAED, 24/25

64 Desempenho de Árvores AVL Uma equilibragem (rotação dupla ou simples): O() Pesquisa: O (log N) O(log N) Inserção: O (log N) Profundidade é, não é necessário equilibrar Procurar a posição para inserir é O (log N) Manter equilibrada é O (log N) : subir na árvore e equilibrar vez Remoção: O (log N) Procurar o elemento a remover é O (log N) Manter equilibrada é O (log N) : subir na árvore e equilibrar no máximo O (log N) vezes 69 IAED, 24/25

65 Exercício Construa uma árvore AVL inserindo os seguintes elementos (por esta ordem): 63, 9, 9, 27, 8, 8, 99 e 8 Desenhe a árvore equilibrada resultante, e escreva o resultado de uma travessia pre-order sobre essa árvore. 7 IAED, 24/25

66 Exercício 63, 9, 9, 27, 8, 8, 99 e RotL(9) + RotR(63) à <-RotR IAED, 24/25

67 Exercício Balance factors Travessia pre-order: 9, 9, 8, 63, 27, 99, 8, 8 72 IAED, 24/25

68 Exercício Balance factors Vamos agora remover o elemento 8!! 73 IAED, 24/25

69 Exercício nó desequilibrado! Vamos agora remover o elemento 8!! 74 IAED, 24/25

70 Exercício nó desequilibrado! O que fazer? 75 IAED, 24/25

71 Exercício nó desequilibrado! O que fazer? Rodar o elemento desequilibrado para a esquerda IAED, 24/25

72 Exercício Já está! 77 IAED, 24/25

73 ADTs + AVLs: Alterações ao código anterior ST.h #ifndef _ST_ #define _ST_ #include <stdlib.h> #include <stdio.h> #include "Item.h" typedef struct STnode* link; void STinit(link*); int STcount(link); Item STsearch(link,Key); void STinsert(link*,Item); void STdelete(link*,Key); void STsort(link,void (*visit)(item)); void STfree(link*); 78 #endif IAED, 24/25

74 ST.c (alterações a verde) #include "ST.h Height vai guardando a altura do nó struct STnode { Item item; link l, r; int height}; link NEW(Item item, link l, link r) { link x = (link)malloc(sizeof(struct STnode)); x->item = item; x->l = l; x->r = r; x->height=; return x; } int height(link h){ 79 } if (h == NULL) return ; return h->height; IAED, 24/25

75 ST.c (alterações a verde) link rotl(link h) { int height_left, height_right; link x = h->r; h->r = x->l; x->l = h; Actualizar a altura dos nós envolvidos height_left = height(h->l); height_right = height(h->r); h->height = height_left > height_right? height_left + : height_right + ; height_left = height(x->l); height_right = height(x->r); x->height = height_left > height_right? height_left + : height_right + ; 8 } return x; IAED, 24/25

76 ST.c (alterações a verde) link rotr(link h) { int height_left, height_right; link x = h->l; h->l = x->r; x->r = h; Actualizar a altura dos nós envolvidos height_left = height(h->l); height_right = height(h->r); h->height = height_left > height_right? height_left + : height_right + ; height_left = height(x->l); height_right = height(x->r); x->height = height_left > height_right? height_left + : height_right + ; 8 } return x; IAED, 24/25

77 ST.c (alterações a verde) link rotlr(link h) /*rotação dupla esquerda direita*/ { } if (h==null) return h; h->l = rotl(h->l); return rotr(h); link rotrl(link h) /*rotação dupla direita esquerda*/ { } if (h==null) return h; h->r = rotr(h->r); return rotl(h); int Balance(link h) {/*Balance factor*/ if(h == NULL) return ; return height(h->l) - height(h->r); 82 } IAED, 24/25

78 ST.c (alterações a verde) link AVLbalance(link h) { int balancefactor; if (h==null) return h; 83 } balancefactor= Balance(h); if(balancefactor>) { if (Balance(h->l)>) h=rotr(h); else h=rotlr(h); } else if(balancefactor<-){ if (Balance(h->r)<) h = rotl(h); else h = rotrl(h); } else{ int height_left = height(h->l); int height_right = height(h->r); h->height = height_left > height_right? height_left + : height_right + ; } return h; IAED, 24/25

79 ST.c (alterações a verde) link insertr(link h, Item item) { if (h == NULL) return NEW(item, NULL, NULL); if (less(key(item), key(h->item))) h->l = insertr(h->l, item); else h->r = insertr(h->r, item); h = AVLbalance(h); return h; } 84 IAED, 24/25

80 ST.c (alterações a verde) link deleter(link h, Key k) { if (h == NULL) return h; else if (less(k, key(h->item))) h->l = deleter(h->l,k); 85 } else if (less(key(h->item), k)) h->r = deleter(h->r,k) ; else{ if (h->l!=null && h->r!=null){ link aux = max(h->l); {Item x; x = h->item; h->item = aux->item; aux->item = x;} h->l = deleter(h->l, key(aux->item)); } else { link aux = h; if (h->l == NULL && h->r == NULL) h=null; else if (h->l == NULL) h = h->r; else h = h->l; deleteitem(aux->item); free(aux); } } h = AVLbalance(h); return h; IAED, 24/25

AED 2002/2003 p.1/21. Estrutura de dados elementar Métodos de travessia de árvores Procura em árvores binárias. Exemplos de clientes

AED 2002/2003 p.1/21. Estrutura de dados elementar Métodos de travessia de árvores Procura em árvores binárias. Exemplos de clientes AED 2002/2003 p.1/21 Árvores Binárias Estrutura de dados elementar Métodos de travessia de árvores Procura em árvores binárias Manipulação eficiente Exemplos de clientes AED 2002/2003 p.2/21 Árvores de

Leia mais

Tabelas de símbolos de árvores binárias de busca

Tabelas de símbolos de árvores binárias de busca 1 Tabelas de símbolos de árvores binárias de busca Além do Sedgewick (sempre leiam o Sedgewick), veja http://www.ime.usp.br/~pf/mac0122-2002/aulas/symbol-table.html http://www.ime.usp.br/~pf/algoritmos/aulas/bint.html

Leia mais

Árvores Equilibradas. Sumário

Árvores Equilibradas. Sumário Árvores Equilibradas Sumário Splay Vermelho Preto AA e BB Multidimensionais quaternárias k d Pesquisa Lexicográfica tries multivia tries binárias PATRICIA Árvores Equilibradas Sumário Árvores AVL Árvores

Leia mais

EAD Árvore - representação usando listas ligadas

EAD Árvore - representação usando listas ligadas 5.1. Definição - A pesquisa de um elemento numa árvore binária de pesquisa implica - fazer uma travessia da árvore até se encontrar o elemento procurado, ou - se concluir da sua inexistência. - As travessias

Leia mais

DAINF - Departamento de Informática

DAINF - Departamento de Informática DAINF - Departamento de Informática Algoritmos 2 - Árvore binária de busca Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 30 de Novembro de 2015 Slides adaptados do material produzido pelo Prof.

Leia mais

Árvores de pesquisa. Árvores de pesquisa equilibradas

Árvores de pesquisa. Árvores de pesquisa equilibradas Árvores VL Árvores Splay Árvores Árvores de pesquisa Árvores Vermelho-Preto Árvores e Árvores Multidimensionais quaternárias k-d [Árvores para Pesquisa Lexicográfica tries multivia tries binárias PTRII]

Leia mais

INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados

INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados Ano Lectivo de 2004/2005 2 o Semestre RESOLUÇÃO DO 2 o TESTE A I. (2.0+1.5+1.5 = 5.0 val.) a) Qual das seguintes declarações pode ser usada para

Leia mais

Árvores AVL e Árvores B. Jeane Melo

Á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

Leia mais

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 Márcio Bueno. / Material da Prof a Ana Eliza Algoritmos e Estrutura de Dados II Árvore AVL Prof Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material da Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar

Leia mais

Árvores binárias de busca

Á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

Leia mais

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. Fonte: Prof a Ana Eliza Algoritmos e Estrutura de Dados II Árvore AVL Prof a Karina Oliveira kkco@dei.unicap.br Fonte: Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar o número de comparações efetuadas,

Leia mais

Universidade Federal de Mato Grosso Estrutura de Dados II

Universidade Federal de Mato Grosso Estrutura de Dados II Universidade Federal de Mato Grosso Estrutura de Dados II Curso de Ciência da Computação Prof. Thiago P. da Silva thiagosilva@ufmt.br Agenda Definições Fator de Balanceamento Estrutura de um Nó Operações

Leia mais

Árvores binárias de busca

Á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

Leia mais

Árvores Binárias de Busca

Á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

Leia mais

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

Leia mais

Árvores Vermelho-Preto

Árvores Vermelho-Preto Árvores Vermelho-Preto SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC)

Leia mais

Árvores Vermelho-Preto

Árvores Vermelho-Preto SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de São

Leia mais

Á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 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 AVL Nesta aula será apresentado o ADT árvore AVL que são árvores binárias de altura equilibrada Algoritmos e Estruturas de Dados I José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP

Leia mais

Árvores Binárias Balanceadas Estrutura de Dados I

Árvores Binárias Balanceadas Estrutura de Dados I - entro de iências Exatas, Naturais e de Saúde Departamento de omputação Árvores inárias alanceadas Estrutura de Dados I OM06992 - Estrutura de Dados I Prof. Marcelo Otone guiar marcelo.aguiar@ufes.br

Leia mais

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

Introdução a árvores AVL. Prof. Ernesto Lindstaedt Introdução a árvores AVL Prof. Ernesto Lindstaedt Definição O nome AVL vem dos seus criadores Adelson Velsky e Landis (1962); Uma ABP T é denominada AVL se: Para todos nós de T,, as alturas de suas duas

Leia mais

Árvores Binárias de Busca

Á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

Leia mais

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

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 3) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

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

GGI026 - Árvore rubro-negra - Remoção GGI026 - Árvore rubro-negra - Remoção Marcelo K. Albertini 11 de Setembro de 2013 2/28 Aula de hoje Nesta aula veremos Remoção em Árvores rubro-negras 3/28 Remoção em árvores rubro-negras Metodologia Possibilidade

Leia mais

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

AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras Árvores AVL AVL vem dos nomes dos seus inventores: Adelson-Velsky and Landis. Definições: a altura de uma subárvore é o comprimento do caminho mais longo

Leia mais

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

Algoritmos e Estrutura de Dados. Aula 17 Estrutura de Dados: Árvores AVL Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 17 Estrutura de Dados: Árvores AVL Prof. Tiago A. E. Ferreira Introdução O nome AVL vem de seus criadores Adelson Velskye Landis, cuja primeira referência encontra-se

Leia mais

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

Aula 16: Pesquisa em Memória Primária - Árvores AVL. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 6: Pesquisa em Memória Primária - Árvores AVL Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Árvore AVL Árvore binária de busca tal que, para qualquer nó interno v, a diferença das alturas

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca 0. Um breve comentário sobre os algoritmos de busca em tabelas De uma maneira geral, realizam-se operações de busca, inserção e remoção de elementos numa tabela. A busca sequencial tradicional é O(N).

Leia mais

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

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 luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 5.1 - Árvores, Árvores Binárias e Árvores Binárias de Busca

Leia mais

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

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura Árvores B Prof. Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes

Leia mais

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

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 4) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

Árvores binárias de busca

Árvores binárias de busca Árvores binárias de busca / Árvores de busca / 1 Árvores binárias de busca, ou binary search trees, BST, são árvores binárias onde, para cada sub-árvore, todos os elementos da sub-árvore da esquerda são

Leia mais

Algoritmos e Estruturas de Dados 2005/2006

Algoritmos e Estruturas de Dados 2005/2006 Algoritmos e Estruturas de Dados 2005/2006 Árvore de pesquisa binária árvores podem ser desiquilibradas operações de inserção e eliminação de elementos são de complexidade linear no pior caso, quando árvore

Leia mais

Árvores Binárias de Busca

Á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 paulovic@icmc.usp.br Instituto

Leia mais

Algoritmos e Estruturas de Dados. Décima primeira aula: Árvores chanfradas

Algoritmos e Estruturas de Dados. Décima primeira aula: Árvores chanfradas Algoritmos e Estruturas de Dados Décima primeira aula: Árvores chanfradas Nesta aula vamos Estudar as árvores chanfradas, que são umas árvores absolutamente fantásticas. Há outras classes de árvores fantásticas,

Leia mais

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

INF 1010 Estruturas de Dados Avançadas. Árvores binárias INF 1010 Estruturas de Dados Avançadas Árvores binárias 1 Árvore estrutura hierárquica: A B E F C D G A B C E F D G A B C D E F G (A (B (E, F)), C, (D (G))) 05/09/16 2 Árvore - definições árvore: nó raiz

Leia mais

Árvores Binárias. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)

Árvores Binárias. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io) Árvores Binárias Algoritmos e Estruturas de Dados 2 201-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Árvores 2 Raíz 3 Folhas 4 Nós Internos 5 Pais e Filhos 6 Descendentes Ancestrais 8 Irmãos 9 Níveis

Leia mais

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

Á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

Leia mais

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

Árvore Binária de Busca. Prof. César Melo Árvore Binária de Busca Prof. César Melo Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e

Leia mais

Pedro Vasconcelos DCC/FCUP. Programação Funcional 16 a Aula Árvores equilibradas

Pedro Vasconcelos DCC/FCUP. Programação Funcional 16 a Aula Árvores equilibradas Programação Funcional 16 a Aula Árvores equilibradas Pedro Vasconcelos DCC/FCUP 2014 Aula anterior Operações sobre árvores binárias ordenadas: 1 pesquisa; 2 inserção; 3 remoção. Estas operações são mais

Leia mais

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

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

Leia mais

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

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

Leia mais

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

Pesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Pesquisa em Memória Primária Árvores de Busca David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar

Leia mais

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

Aula 16: Pesquisa em Memória Primária - Árvores de Busca. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 16: Pesquisa em Memória Primária - Árvores de Busca Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para

Leia mais

Algoritmos e Estruturas de Dados

Algoritmos e Estruturas de Dados Introdução aos Algoritmos e Estruturas de Dados 2 o Teste - A LEIC Alameda, 2007/2008 Data: 12 de Junho de 2008 2 o Semestre Duração: 2h RESOLUÇÃO I. (2.5+2.5 = 5.0 val.) I.a) Suponha que está a trabalhar

Leia mais

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

Leia mais

Introdução aos Algoritmos e Estruturas de Dados. 2 o Teste - A

Introdução aos Algoritmos e Estruturas de Dados. 2 o Teste - A Ano Lectivo 2017/2018 2 o Semestre Introdução aos Algoritmos e Estruturas de Dados 2 o Teste - A Data: 20 de Junho de 2018 Duração: 1h30m RESOLUÇÃO I. (2,0 + 2,0 + 2,0 + 2,0 = 8,0 val.) I.a) Considere

Leia mais

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de

Leia mais

Mo:vação. Árvore AVL. Caracterís:cas. Origem. Exemplo. Exercício 1 Qual é a altura dos nodos 50 e 44?

Mo:vação. Árvore AVL. Caracterís:cas. Origem. Exemplo. Exercício 1 Qual é a altura dos nodos 50 e 44? Mo:vação Árvore AVL Árvores binárias de Pesquisa possuem uma tendência natural de desbalancear 1 2 Rohit Gheyi rohit@dsc.ufcg.edu.br 6 8 1 2 Origem Adelson Velskii, G.; E. M. Landis (1962). "An algorithm

Leia mais

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

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m Árvore B Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m 1valores; Os valores dentro de cada nó estão ordenados; Todos os valores na subárvore esquerda de um valor são menores que

Leia mais

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

ESTRUTURA DE DADOS CIÊNCIA E TECNOLOGIA DO RIO. Curso de Tecnologia em Sistemas para Internet INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE ESTRUTURA DE DADOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia

Leia mais

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

Árvores de Pesquisa. A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação. Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação. Particularmente adequada quando existe necessidade de considerar todos ou alguma combinação

Leia mais

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

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior Árvore Binária de Busca (ABB) o valor associado à raiz é sempre maior que o valor associado a qualquer nó da sub-árvore à esquerda

Leia mais

Copiar para o ficheiro ArvoreBinaria.h e adaptar as funções associadas às operações sobre árvores binárias (3.1 a 3.12)

Copiar para o ficheiro ArvoreBinaria.h e adaptar as funções associadas às operações sobre árvores binárias (3.1 a 3.12) Considere as seguintes declarações (NodoArv e PNodoArv), adaptadas dos apontamentos: struct NodoArv { int Elemento; struct NodoArv *Esquerda; struct NodoArv *Direita; ; typedef struct NodoArv *PNodoArv;

Leia mais

Funções Finitas II: árvores AVL

Funções Finitas II: árvores AVL Funções Finitas II: árvores AVL Métodos de Programação II 2004/2005 1 Objectivos Estender a biblioteca de árvores binárias para suportar Árvores AVL. 2 Motivação Pretende-se adaptar o programa apresentado

Leia mais

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

Splaying Tree (Árvore espalhada) Estrutura de Dados II Jairo Francisco de Souza Splaying Tree (Árvore espalhada) Estrutura de Dados II Jairo Francisco de Souza Introdução Inventada por Adelson Velskii e Landis - 1962. Também chamada de Árvores Auto-Ajustadas ou Árvore de Afunilamento.

Leia mais

Árvores AVL. Prof. Robinson Alves

Á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

Leia mais

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

Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 Árvores Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 2 Árvore Binária de Busca Definição: uma árvore binária de busca (ABB) é uma árvore binária na qual

Leia mais

Árvores de Pesquisa (Parte I)

Árvores de Pesquisa (Parte I) Baseado no material do Prof. Reinaldo Fortes para o curso de 2014-01 Arquivo original: 21._arvores_(parte_1) Árvores de Pesquisa (Parte I) Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Algoritmos

Leia mais

ÁRVORE AVL. Problema do balanceamento

ÁRVORE AVL. Problema do balanceamento ÁRVORE VL Prof. ndré ackes Problema do balanceamento 2 eficiência da busca em uma árvore binária depende do seu balanceamento. O(log N), se a árvore está balanceada O(N), se a árvore não está balanceada

Leia mais

Linguagem C: Árvores AVL

Linguagem C: Árvores AVL Instituto de C Linguagem C: Árvores AVL Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Árvores Balanceadas As árvores binárias de pesquisa são,

Leia mais

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

Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM Árvores Binária de Busca Prof. César Melo DCC/ICE/UFAM Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos

Leia mais

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

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO

Leia mais

ESTRUTURAS DE DADOS (LEI, LM, LEE) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2018/2019

ESTRUTURAS DE DADOS (LEI, LM, LEE) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2018/2019 ESTRUTURS DE DDOS (LEI, LM, LEE) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2018/2019 Árvores Binárias o contrário das estruturas focadas até ao momento, as árvores

Leia mais

INE5408 Estruturas de Dados

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

Leia mais

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

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich Árvores Binárias SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista. Figuras editadas por Isadora Maria Mendes http://www.icmc.usp.br/~paulovic

Leia mais

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) PIP/CA - Programa Interdisciplinar de Pós-Graduação

Leia mais

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

Á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

Leia mais

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

Árvores, Árvores Binárias e Árvores Binárias de Pesquisa. Rui Jorge Tramontin Jr. Árvores, Árvores Binárias e Árvores Binárias de Pesquisa Rui Jorge Tramontin Jr. Tópicos Abordados Introdução Definição de Árvore Árvores Binárias Árvores Binárias de Pesquisa (ABP) UDESC / Rui J. Tramontin

Leia mais

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

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

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca Algoritmos e Estruturas de Dados I Nesta aula será apresentado o ADT árvore binária de busca, também conhecidas como dicionários binários Uma árvore binária de busca é uma estrutura

Leia mais

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

Á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

Leia mais

ÁRVORE BINÁRIA DE BUSCA

ÁRVORE BINÁRIA DE BUSCA ÁRVORE BINÁRIA DE BUSCA Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e remover elementos

Leia mais

Árvores binárias de busca

Árvores binárias de busca Árvores binárias de busca S-202 lgoritmos e Estruturas de Dados I Prof. Thiago. S. Pardo Árvore binárias Árvores de grau 2, isto é, cada nó tem dois filhos, no máximo Raiz D B E Terminologia: filho esquerdo

Leia mais

Algoritmos e Estruturas de Dados 2005/2006. árvore Vermelho-Preto cada nó tem no máximo 1 filho vermelho. Árvore AA ; semelhante a árvore BB, mas:

Algoritmos e Estruturas de Dados 2005/2006. árvore Vermelho-Preto cada nó tem no máximo 1 filho vermelho. Árvore AA ; semelhante a árvore BB, mas: Algoritmos e Estruturas de Dados 00/006 Árvore BB: árvore Vermelho-Preto cada nó tem no máximo 1 filho vermelho Árvore AA ; semelhante a árvore BB, mas: só filhos direitos podem ser vermelhos reduz casos

Leia mais

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

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

Leia mais

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

Módulo 9. Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II C++ (Rone Ilídio) Módulo 9 Pesquisa em Memória Primária Algoritmos e Estruturas de Dados II C++ (Rone Ilídio) Árvore Binária Estrutura baseada em ponteiros Os elementos são chamados nós Cada nó é ligado a, 1 ou 2 elementos

Leia mais

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

Leia mais

Algoritmos e Estruturas de Dados: Árvore Binária de Busca

Algoritmos e Estruturas de Dados: Árvore Binária de Busca Busca pelo nodo 72 Árvore Binária de Busca Introdução 2/21 Algoritmos e Estruturas de Dados: Árvore Binária de Busca 44 Raiz Rômulo Silva de Oliveira Departamento de Automação e Sistemas DAS UFSC romulo@das.ufsc.br

Leia mais

INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados

INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados Ano Lectivo de 2002/2003 2 o Semestre 2 o Teste A 9 de Junho de 2003 Duração: 2h - O teste é sem consulta. - Para cada questão com escolha múltipla

Leia mais

Problemas com ABP Desbalanceamento progressivo

Problemas com ABP Desbalanceamento progressivo Árvores Binárias de Pesquisa Árvores Balanceadas Aresentam uma relação de ordem A ordem é definida ela chave Oerações: inserir consultar 5 excluir 3 8 15 4 6 9 Problemas com ABP Exemlo: Problemas com ABP

Leia mais

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

Algoritmos e Estruturas de Dados I. Aula 11 Árvores AVL. Prof. Jesús P. Mena-Chalco. Algoritmos e Estruturas de Dados I Aula 11 Árvores AVL Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2019 1 Sobre a altura de uma ABB 2 Altura de uma ABB 4 2 1 6 3 5 7 Uma árvore de 7 elementos

Leia mais

Árvores de Pesquisa (Parte II)

Árvores de Pesquisa (Parte II) 2013-02 Aula 21 Adaptado por Reinaldo Fortes para o curso de 2013-02 Arquivo original: 22._arvores_(parte_2) Árvores de Pesquisa (Parte II) Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 24

Leia mais

ESTRUTURAS DE DADOS E ALGORITMOS ÁRVORE BINÁRIA

ESTRUTURAS DE DADOS E ALGORITMOS ÁRVORE BINÁRIA ESTRUTURAS DE DADOS E ALGORITMOS 1 ÁRVORE BINÁRIA Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande ÁRVORE (EXEMPLO) Como seria pesquisar a localização de

Leia mais

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

Árvores AVL. Estrutura de Dados II Jairo Francisco de Souza Árvores AVL Estrutura de Dados II Jairo Francisco de Souza Introdução As árvores binárias de pesquisa são projetadas para um acesso rápido à informação. Idealmente a árvore deve ser razoavelmente equilibrada

Leia mais

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 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 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ó

Leia mais

Dicionários. TAD Orientado a conteúdo

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)

Leia mais

Estruturas de Dados I

Estruturas de Dados I UFES - Curso de verão 2011 Estruturas de Dados I Profa. Juliana Pinheiro Campos jupcampos@gmail.com Árvores binárias de busca (ou São árvores projetadas para dar suporte a operações de busca de forma eficiente.

Leia mais

AED2 - Aula 04 Vetores ordenados e árvores de busca

AED2 - Aula 04 Vetores ordenados e árvores de busca AED2 - Aula 04 Vetores ordenados e árvores de busca Considere um vetor ordenado v de tamanho n. Ele suporta as seguintes operações: busca - dada uma chave k, devolva um apontador para um objeto com esta

Leia mais

GGI026 - Árvore rubro-negra

GGI026 - Árvore rubro-negra GGI026 - Árvore rubro-negra Marcelo K. Albertini 11 de Setembro de 2013 2/1 Aula de hoje Nesta aula veremos Árvores rubro-negras 3/1 Árvore rubro-negra Propriedades: 33 1 - Todo nó é vermelho ou preto

Leia mais

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

Á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

Leia mais

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

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 2) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

INF1010 Lista de Exercícios 2

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

Leia mais

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

Splaying Tree (Árvore espalhada) Estrutura de Dados II Jairo Francisco de Souza Splaying Tree (Árvore espalhada) Estrutura de Dados II Jairo Francisco de Souza Introdução Inventada por Adelson Velskii e Landis - 1962. Também chamada de Árvores Auto-Ajustadas ou Árvore de Afunilamento.

Leia mais

Prof. Jesus José de Oliveira Neto

Prof. Jesus José de Oliveira Neto Prof. Jesus José de Oliveira Neto São estruturas de dados adequadas para a representação de hierarquias. Uma árvore é composta por um conjunto de nós. Existe um nó r, denominado raiz, que contém zero ou

Leia mais

Árvores & Árvores Binárias

Árvores & Árvores Binárias Árvores & Árvores Binárias Problema Implementações do TAD Lista Linear Lista encadeada eficiente para inserção e remoção dinâmica de elementos, mas ineficiente para busca Lista seqüencial (ordenada) Eficiente

Leia mais

PROGRAMAÇÃO III (LTSI)

PROGRAMAÇÃO III (LTSI) ESTRUTURAS DE DADOS (LEI, LM, LEE) PROGRAMAÇÃO III (LTSI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2009/2010 Árvores Binárias AVL Tal como visto anteriormente, caso

Leia mais

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

ÁRVORES. Prof. Yan ndre Maldonado - 1. Prof. Yandre Maldonado e Gomes da Costa ÁRVORES Prof. Yan ndre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Árvores Prof. Yan ndre Maldonado - 2 Árvores são estruturas de dados que caracterizam uma relação entre os dados que a compõem;

Leia mais