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

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

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

Transcrição

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

2 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 para definirmos uma estrutura de árvore é usando recursividade

3 Estrutura de Árvores v Uma árvore é composta por um conjunto de nós. v Existe um nó r, denominado raiz, que contém zero ou mais sub-árvores, cujas raízes são ligadas a r. v Esses nós raízes das sub-árvores são ditos filhos do nó pai, no caso r. v Nós com filhos são comumente chamados de nós internos e nós que não têm filhos são chamados de folhas, ou nós externos.

4 Estrutura de Árvores Por adotarmos essa forma de representação gráfica, não representamos explicitamente a direção dos ponteiros, subentendendo que eles apontam sempre do pai para os filhos.

5 ÁRVORES BINÁRIAS

6 Definição v Cada nó interno tem até dois descendentes (filhos) v Os filhos de um nó interno formam um par ordenado A sub-árvore da direita (sad) e A sub-árvore da esquerda (sae).

7 Altura de uma AB Propriedade: Só existe um caminho da raiz para qualquer nó. v Podemos definir a altura de uma árvore como sendo o comprimento do caminho mais longo da raiz até uma das folhas. v A altura de uma árvore com um único nó raiz é zero e, por conseguinte, dizemos que a altura de uma árvore vazia é negativa e vale -1.

8 Calculando Altura da AB v Seja r a raiz de uma árvore binária A, então a altura de A é dada por Se A!= NULL Altura(A) = max{altura(a.sae),altura(a.sad)}+1 Se A == NULL Altura(A) = -1 Dicionários 8

9 Número máximo de nós Propriedade: Em um nível d existem no máximo 2 d nós Nível conjunto de nós com a mesma profundidade Seja Mn(.) a função que denota a quantidade máxima de elementos em um dado nível d. Claramente, Mn(0) = 1 e Mn(d) = 2*Mn(d-1) para d > 0 Dicionários 9

10 Uma AB cheia Uma árvore binária T é dita CHEIA se todos os nós, com exceção das folhas, têm dois filhos. Dicionários 10

11 Uma AB cheia Propriedade: Um árvore binária cheia de altura h tem no máximo (2 h+1-1) nós n = Mn(0) + Mn(1) + + Mn(h) = h = (1-2 h+1 )/(1-2) = 2 h+1-1 Dicionários 11

12 Uma AB Completa v Uma árvore binária T com n níveis é completa se todos os níveis, exceto o último, são completos e o último nível tem todos os seus nós dispostos mais a esquerda Dicionários 12

13 TAD Árvore Binária v Deve estender um TAD árvore, e herdar todos os seus métodos: Construtor, destrutor, altura, tamanho v Métodos adcionais Sae(r): retorna o nó raiz da sub-árvore a esquerda Sad(r): retorna o nó raiz da sub-árvore a direita Pai(r): retorna o nó pai do nó passado r Dicionários 13

14 AB: em um vetor v A indexação para todo nó v da árvore T, o índice de v, p(v), será definido da seguinte forma: Se v é a raiz: p(v) = 0 Se v é o filho a esquerda do nó u: p(v) = 2p(u) + 1 Se v é o filho a direita do nó u: p(v) = 2p(u) A B C D E F G v Vantagens: Implementação Simples; Acesso direto; Dicionários 14

15 AB: em um vetor v Custo baseado no espaço considere a seguinte notação n número de nós na árvore T P m maior valor de p(v) N tamanho do vetor, i.e, o espaço reservado v Melhor cenário: árvore completa e balanceada Todas as entradas no vetor estão ocupadas N = P m +1 = n = O(n) Dicionários 15

16 AB: em um vetor v Pior cenário: árvore desbalanceada em alto grau Poucas entradas ocupadas Altura: h = (n-1)/2 Max p(v): P m = 2 h+1-2 = 2 (n+1)/2-2 Tamanho do vetor: N = P m +1 = 2 (n+1)/2-1=o(2 n ) Dicionários 16

17 AB no vetor: desempenho Tempo de execução: Bom! Tempos constante para a grande maioria das operações Método Elementos Troca de elementos, atualizar Custo O(n) O(1) Raiz, pai, filhos (sae, sad) 0(1) Raiz da Sae, raiz da sad É nó interno(externo), É raiz Espaço: Ruim! Melhor cenário: árvore completa O(n) Pior cenário: árvore debalanceada O(2 n ) O(1) O(1) Dicionários 17

18 AB em uma Estrutura Encadeada v Nó na estrutura encadeada da AB 1. Referência para informação 2. Referência para o pai 3. Referência para a sae 4. Referência para a sad v v Se o nó é a raiz Referência para o pai é NULL Se o nó é uma folha Sae e Sad são NULL sae pai info sad Dicionários 18

19 AB em uma estrutura Encadeada Dicionários 19

20 Representação em C typedef struct no TNo; struct no { void* info; TNo* esq; TNo* dir; TNo* pai; };

21 Criando Nós TNo* criarno(tno* pai, void *c) { TNo* p=malloc(sizeof(tno)); p->info = c; p->esq = NULL; p->dir = NULL; p->pai = pai; return p; }

22 Árvore Vazia short vazia(tno* a) { return a==null; }

23 Buscando um Elemento Essa função tem como retorno um valor booleano (um ou zero) indicando a ocorrência ou não da informação na árvore. int buscar (TNo* a, void *chave){ if (vazia(a)) return 0; /* não encontrou */ else{ Tcomparavel *e = a->info; return (e->compara(e,chave) == 0) buscar(a->esq,chave) buscar(a->dir,chave); } }

24 Impressão (pré-ordem) static void imprimir (TNo* raiz) { if (raiz==null) return print(raiz->info); imprimir(raiz->esq); imprimir(raiz->dir); }

25 Destrutor O único cuidado que precisamos tomar na programação dessa função é a de liberar as subárvores antes de liberar o espaço associado a um nó (isto é, usar pós-ordem). void destruir (TNo* a) { if (vazia(a)) return } destruir(a->esq) destruir(a->dir) free(a)

26 Árvore Binária de Busca v Seja r um nó QUALQUER de um árvore binária T, então Se o descendente direto de r na sub-árvore a esquerda for menor Se o descendente direto de r na sub-árovre a direita for maior v T é uma árvore binária de busca. Dicionários 2-26

27 Exemplos Dicionários 27

28 Operações v Dado uma árvore BB T, as seguintes operações podem atuar sobre T Tamanho Altura Inserir, Remover, Buscar, Atualizar Dicionários 28

29 Inserir v Caminha comparando o valor a ser inserido com os valores na árvore. v Encontrada a posição: Atualiza o pai do novo nó; Atualiza o endereço da raiz da sub árvore definida pelo novo no; 20 NOVO Legenda: SAD Pai Dicionários 29

30 Inserir Dicionários 30

31 Remover v Três cenários Remoção de Folha Remoção de nó com apenas um descendente Remoção de nó com dois descendente Dicionários 31

32 Remover: Folha 4 Legenda: Caminho de busca Dicionários 32

33 Remover: Raiz com UM filho 14 Legenda: Caminho de busca Dicionários 33

34 Remover: Raiz com dois filhos 1) Encontra o maior da SAE 2) Troca o Maior da SAE com a raiz sendo removida 3) Retoma a remoção na SAE Legenda: Caminho de busca Dicionários 34

35 Até mais ABB, muito prazer AVL. Escreva sobre a estrutura de dados Árvore Binária de Busca(ABB). Você terá 10 minutos para finalizar a tarefa. Identifique o material produzido, e o coloque na mesa do professor. Caminho de busca Custo Pós-fixada In-fixada Altura Remoção Descendente Dicionário Inserção Pai Sucessor Degenerada Menor Predecessor Propriedade Maior Pré-fixada Menor Representação em C Sub-árvore Recursividade Raiz

36 Contexto l O pior que pode acontecer a uma ABB é a sua degeneração. Perder as qualidades ou características primitivas; Alterar-se para pior; Estragar-se Corromper-se l O pior cenário:

37 Introdução l Árvore Balanceada Uma árvore binária balanceada é aquela em que, para qualquer nó, suas sub-árvores esquerda e direita têm a mesma altura. l Menos restritiva é uma Árvore AVL Uma árvore binária de busca é considerada balanceada quando, para cada nó, as alturas de suas sub-árvores esquerda e direita diferem de, no máximo, UMA unidade. Essa diferença é chamada fator de balanceamento, ou FB(n).

38 Introdução l Seja um nó n qualquer da árvore: FB(n) = altura(sad) altura(sae). se FB(n) = 0, as duas sub-árvores têm a mesma altura; se FB(n) = -1, a sub-árvore esquerda é mais alta que a direita em UMA unidade; se FB(n) = +1, a sub-árvore direita é mais alta que a esquerda em UMA unidade.

39 Introdução Exemplos de Árvores AVL

40 Introdução Exemplos de Árvores Binárias MAS que não são AVL

41 Introdução l A vantagem de uma árvore AVL sobre uma degenerada está na maior eficiência nas suas operações de busca, pois, sendo a altura da AVL bem menor, o número necessário de comparações diminui sensivelmente. l Por exemplo, numa árvore degenerada de nós, são necessárias, em média, comparações, numa busca; numa árvore AVL, com o mesmo número de nós, essa média baixa para 14. l A solução é adotar um algoritmo que, a cada inserção, faça as correções necessárias para manter sempre a árvore como uma árvore AVL, ou seja, onde qualquer nó n tenha FB(n) <= 1.

42 Balanceamento l Como manter a propriedade da AVL? Insere-se um novo nó na árvore; Caso a inserção do novo nó viole a propriedade de balanceamento; É preciso restaurar o balanço da árvore. O balanço é mantido por meio de ROTAÇÕES na árvore.

43 Balanceamento, preparação... l Serão usados dois ponteiros A e B, para auxiliar: A é nó ancestral mais próximo do nó inserido com FB(nó) 0 antes da inserção, ou a própria raiz se não há nenhum nó com FB(nó) 0 (antes da inserção) no caminho da busca. A é também chamado de Pivô; B é filho de A na sub-árvore onde ocorreu a inserção.

44 Exemplo de Desbalanceamento Árvore onde ocorre A inserção do valor 2 Após a Inserção do valor 2 (-1) 10 (-2) 10 A (0) 5 (-1) 5 B (0) 2 novo nó inserido Quem é A e quem é B?

45 Inserção Balanceada l Há 4 casos para serem analisados. l Solução rotação simples: Inserção na sub-árvore esquerda do filho esquerdo de A Inserção na sub-árvore direita do filho direito de A l Solução rotação dupla: Inserção na sub-árvore esquerda do filho direito de A Inserção na sub-árvore direita do filho esquerdo de A

46 Rotação Simples proc rotação simples se FB(A) = +2 então rotação simples à esquerda senão rotação simples à direita fim se zera fatores de A e de B fim proc

47 Rotação Simples à Esquerda A->dir = B->esq; B->esq = A; A (+2) 20 B (+1) A B A B (0) 30

48 Rotação Simples à Direita A->esq = B->dir; B->dir = A; 0 1 (-1) B 5 (-2) A 10 B 5 A B 10 A 2 (0) 2 2

49 Inserção - Exemplo l Mostrar as rotações necessárias para a construção da seguinte árvore AVL: 3, 2, 1, 4, 5, 6 e 7 A 3 (-2) B 2 (-1) 1 (0) Quem é A? Quem é B? Quais os FB s? O que é necessário fazer para equilibrar essa árvore?

50 Inserção - Exemplo O resultado da rotação à direita fica Após a inserção de 4 e 5 fica O que tem que ser feito para re-equilibrar? 4 5

51 Inserção - Exemplo O resultado da rotação à esquerda fica Mas quando o 6 é inserido o resultado fica O que tem que ser feito para re-equilibrar? 3 5 6

52 Inserção - Exemplo O resultado da rotação à esquerda fica Mas quando o 7 é inserido o resultado fica O que tem que ser feito para re-equilibrar?

53 Inserção - Exemplo O resultado da rotação à esquerda fica

54 Pensando num Futuro próximo... l Defina em C uma estrutura de dados que possa representar uma árvore AVL; l Implemente procedimento para calcular FB; l Implemente procedimento que percorra a árvore e imprima o fator de balanceamento de cado nó em uma ordem in-fixada com o seguinte formato: n(fb), onde n é uma raiz de sub-árvore e FB o fator de balanceamento. l Implemente os procedimentos de rotação simples.

55 Exercício l Mostrar as rotações necessárias para a construção da seguinte árvore AVL: 5, 4, 3, 6, 7, 8 e 9

56 Próximo episódio de AVL l Há 4 casos para serem analisados. ü Solução rotação simples: ü ü Inserção na sub-árvore esquerda do filho esquerdo de A Inserção na sub-árvore direita do filho direito de A l Solução rotação dupla: Inserção na sub-árvore esquerda do filho direito de A Inserção na sub-árvore direita do filho esquerdo de A

57 Relembrando e antes de rotacionar duplo l A é o primeiro ancestral no caminho de busca cujo o fator de balanceamento, antes da inserção, era diferente de zero; l B é o filho de A na sub-árvore onde ocorreu a inserção; l E temos agora um novo ator: Aux que é um filho de B.

58 Rotação Dupla proc rotação dupla se FB(A) = +2 então rotação dupla à direita senão rotação dupla à esquerda fim se ajusta fatores dos nós envolvidos na rotação fim proc

59 Rotação Dupla à Esquerda l É composta por uma rotação simples á esquerda (B e Aux) seguida de uma rotação simples à direita (A e Aux) l Aux é o filho direito de B.

60 Rotação Dupla à Esquerda Aux = B->dir; // rotação simples à esquerda (B Aux) B->dir = Aux->esq; Aux->esq = B; // rotação simples à direita (A Aux) A->esq = Aux->dir; Aux->dir = A; B 10 A 20 Aux 15 B 10 A 20 Aux 15 B 15 Aux A

61 Rotação Dupla à Direita l É composta por uma rotação simples à direita (B e Aux) seguida de uma rotação simples à esquerda (A e Aux) l Aux é o filho esquerdo de B.

62 Rotação Dupla à Direita Aux = B->esq; // rotação simples à direita (B Aux) B->esq = Aux->dir; Aux->dir = B; // rotação simples à esquerda (A Aux) A->dir = Aux->esq; Aux->esq = A; A 20 A 20 Aux Aux B 25 Aux 30 B A B 30

63 Rotação Dupla - Exemplo Como ficaria se fosse inserido o valor 16?

64 Rotação Dupla - Exemplo A Árvore ainda fica OK! Como ficaria se fosse inserido o valor 15?

65 Rotação Dupla - Exemplo Desequilíbrio no nó 7. Rotação dupla à direita.

66 Rotação Dupla - Exemplo Agora a árvore está OK! E se inseríssemos o 14?

67 Rotação Dupla - Exemplo Desequilíbrio no nó 6. Rotação dupla à direita Primeira fase: Rotação simples à direita

68 Rotação Dupla - Exemplo Segunda fase: Rotação simples à esquerda

69 Rotação Dupla - Exemplo Agora a árvore está OK!

70 DESAFIO G.M. Adelson-Velskii e E.M. Landis

71 O problema: Implementar um método/forma de atualização dos fatores de balanceamento de uma árvore. Dica: Considere todos os casos (rotações) e veja como elas afetam o fator de balaceamento. Custo: Em quanto o seu método melhora a desempenho da implementação. Application Layer 2-71

72 Remoção l Inicialmente, faz-se a retirada do nó, usando o algoritmo de busca e retirada de uma ABB. l Se não desbalanceou, o processo está encerrado. l Se desbalanceou a árvore, isto é, se um ou mais nós ficou com FB(nó) >1, raciocina-se em termos de inserção, perguntando: se o desbalanceamento ocorresse devido a uma inserção, que nó teria sido inserido para causar tal desequilíbrio? l Identificado o nó, simula-se sua inserção e faz-se a rotação necessária.

73 Remoção Retirando o 5 resulta uma árvore desbalanceada no nó 10. Que nó inserido teria causado esse desequilíbrio? o 30. Uma rotação simples à esquerda resolve o problema.

74 Remoção Retirando o 12 desequilibra a raiz. Podemos supondo que a inserção recente foi o 8. Uma rotação dupla à esquerda corrige o problema.

75 Remoção A retirada da folha 2 desbalanceia a raiz 6. Essa configuração jamais pode vir de uma seqüência de inserções, pois, se ela fosse 8, 12 ou 12, 8, a primeira dessas inclusões já provocaria rotação. Solução: escolhe-se arbitrariamente um desses dois nós, despreza-se o outro (mantendo-o na árvore, obviamente), e simula-se a sua inserção. Escolhemos o 12, que exige uma operação mais simples: rotação simples à esquerda.

76 Remoção Infelizmente, há situações mais complexas, onde o próprio processo de balanceamento devido a retirada de um nó de uma subárvore, pode provocar um novo desequilíbrio na árvore. A solução será reaplicar o método para a árvore que desbalanceou. E novo desequilíbrio pode ser provocado mais acima, exigindo novo balanceamento. E assim por diante, até que toda a árvore volte a ser uma AVL.

77 Remoção Isso causará o desequilíbrio da subárvore cuja raiz é 70; aplicando nosso método para esta subárvore apenas, simulamos o ingresso do 90, fazendo uma rotação simples à esquerda entre 70 e 80, o que resulta na árvore abaixo: Esta árvore é AVL?

78 Remoção A árvore não é AVL, pois FB(60) >1. Temos que reaplicar o método para o 60. Considerando que, neste caso, tanto faz escolhermos o 42, o 52 ou o 56 para ser o nó de inserção simulada, a rotação exigida é a dupla à esquerda (60-40), o resultado é a árvore abaixo que, finalmente, é uma AVL:

79 Como último comentário... Isso mostra porque a remoção é mais complicada que a inserção. Enquanto nesta operação, no máximo uma rotação (simples ou dupla) servirá para manter a árvore balanceada, na remoção de um único nó, mais de uma rotação poderá ser necessária.

80 Algoritmo: (Parte I) v TArv* poda (TArv* r, int v){ v if (r == NULL) v return NULL; v else if (r->info > v) v v r->esq = poda(r->esq, v); // mesmo procedimento inserção v else if (r->info < v) v v r->dir = poda(r->dir, v); // mesmo procedimento inserção v else { /* achou o elemento */ v v } // Próximo Slide v return r; v }

81 Algoritmo: (Parte II) v else { /* achou o elemento */ v if (r->esq == NULL && r->dir == NULL){} /* Folha? */ v else if (r->esq == NULL){} /* Só tem filho à direita? */ v else if (r->dir == NULL){} /* Só tem filho à esquerda? */ v else { /* Tem os dois filhos */ v v v v } /* encontra sucessor */ & /* troca as informações entre raiz e sucessor*/ r->dir = poda(r->dir,v); //mesmo procedimento

82 Algoritmo: (Parte II) v else { /* achou o elemento */ v if (r->esq == NULL && r->dir == NULL){} /* Folha? */ v else if (r->esq == NULL){} /* Só tem filho à direita? */ v else if (r->dir == NULL){} /* Só tem filho à esquerda? */ v else { /* Tem os dois filhos */ v v v v } /* encontra sucessor */ & /* troca as informações entre raiz e sucessor*/ r->dir = poda(r->dir,v); //mesmo procedimento

83 Pior Cenário da ABB v As chaves inseridas de forma ordenada: Crescente Decrescente Dicionários 83

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

Árvores AVL (Adelson-Velskii and Landis)

Á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

Leia mais

Árvores. Prof. César Melo DCC/ICE/UFAM

Árvores. Prof. César Melo DCC/ICE/UFAM Árvores Prof. César Melo DCC/ICE/UFAM Introdução As estruturas anteriores são chamadas de unidimensionais (ou lineares) Exemplo são vetores e listas Não adequadas para representar hierarquias. Exemplo:

Leia mais

Árvores. Prof. César Melo DCC/ICE/UFAM

Árvores. Prof. César Melo DCC/ICE/UFAM Árvores Prof. César Melo DCC/ICE/UFAM Introdução As estruturas anteriores são chamadas de unidimensionais (ou lineares) Exemplo são vetores e listas Não podem ser usadas como hierarquias. Exemplo: árvore

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

Á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

Á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

Á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

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

Á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

Á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

Á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

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

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

Árvores. Sérgio Carlos Portari Júnior

Árvores. Sérgio Carlos Portari Júnior Árvores Sérgio Carlos Portari Júnior Árvores São estruturas de dados adequadas para apresentação de hierarquias. Uma árvore é composta por um conjunto de nós. Existe um nó r, denominado raiz, que contém

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

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

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros: Fontes Bibliográficas Estruturas de Dados Aula 15: Árvores Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo 5; Estruturas

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 E ÁRVORE BINÁRIA DE BUSCA

Á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

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

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

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

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 17 - Busca 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

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

ÁRVORES E ÁRVORES BINÁRIAS. Adaptado de Alexandre P

ÁRVORES E ÁRVORES BINÁRIAS. Adaptado de Alexandre P ÁRVORES E ÁRVORES BINÁRIAS Adaptado de Alexandre P ROTEIRO Contextualização Árvores Árvores Binárias ROTEIRO Contextualização Árvores Árvores Binárias CONTEXTUALIZAÇÃO Importância de estruturas unidimensionais

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

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

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

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização

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

Árvores & Árvores Binárias

Árvores & Árvores Binárias SCE 182 SCC122 Algoritmos Estruturas e Estruturas de Dados de Dados I Árvores & Árvores Binárias Prof. Material Original: Walter Aoiama Nagai; Maria das Graças Volpe Nunes; Definições Árvore T é um conjunto

Leia mais

Árvores Binárias. 16/11 Representação e Implementação: Encadeada Dinâmica O TAD

Árvores Binárias. 16/11 Representação e Implementação: Encadeada Dinâmica O TAD Árvores Binárias 16/11 Representação e Implementação: Encadeada Dinâmica O TAD ED AB, encadeada dinâmica Para qualquer árvore, cada nó é do tipo info esq dir typedef int elem; typedef struct arv *Arv;

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

Á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

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

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

Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio Programação II Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio Árvores Dados organizados de maneira hierárquica Exemplos: arquivos em diretórios, subdivisão de espaço 2D em um

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

Estruturas de Dados II

Estruturas de Dados II Estruturas de Dados II Rodrigo Porfírio da Silva Sacchi rodrigosacchi@ufgd.edu.br 3410-2086 Aula 2: Árvores http://www.do.ufgd.edu.br/rodrigosacchi Árvores Definição: Árvores Uma árvore T é um conjunto

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

Á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

Á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

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

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Á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

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

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

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

Árvore binária - definição

Árvore binária - definição Árvore binária - definição árvore binária: conjunto finito de nós Æ (árvore vazia) {raiz, sub-árvore esquerda, sub-árvore direita}, onde sae e sad são conjuntos disjuntos Æ ou raiz /* nó da árvore binária

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. 9/11 e 11/11 Conceitos Representação e Implementação

Árvores Binárias. 9/11 e 11/11 Conceitos Representação e Implementação Árvores Binárias 9/11 e 11/11 Conceitos Representação e Implementação Árvore Binárias (AB) Uma Árvore Binária (AB) T é um conjunto finito de elementos, denominados nós ou vértices, tal que: (i) Se T =,

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

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

Estruturas de Dados com Jogos. Capítulo 9 Árvores Balanceadas Estruturas de Dados com Jogos Capítulo 9 Árvores Balanceadas 1 Seus Objetivos neste Capítulo Entender o conceito de Balanceamento, e sua importância para a eficiência das Árvores Binárias de Busca; Desenvolver

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

Á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

Aula 08. Estruturas de dados Árvore e Grafo

Aula 08. Estruturas de dados Árvore e Grafo Logo Aula 08 Estruturas de dados Árvore e Grafo 2 Árvore Estruturas estudadas até agora não são \ adequadas para representar dados que devem ser dispostos de maneira hierárquica Ex., hierarquia de pastas

Leia mais

ÁRVORES BALANCEADAS (AVL)

ÁRVORES BALANCEADAS (AVL) ÁRORES BALANCEADAS (AL) PALO JOSÉ DA SILA E SILA 1. Árvores balanceadas Como já vimos anteriormente, o uso de árvores binárias de busca sem a preocupação com seu balanceamento pode levar a um aumento de

Leia mais

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

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

Leia mais

UFJF - DCC - Estrutura de Dados e Laboratório de Programação II

UFJF - DCC - Estrutura de Dados e Laboratório de Programação II UFJF - DCC - Estrutura de Dados e Laboratório de Programação II Árvore Binária (AB) 1. Considerar os tipos abstratos de dados definidos a seguir. Para o nó de uma árvore binária de números inteiros: class

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

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Heaps Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Introdução Definição de Heap Heap Binária Implementação com vetor Fila de Prioridades

Leia mais

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

Leia mais

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

Á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

Leia mais

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira. Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados

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

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

Leia mais

Á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

Á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

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 Rubro-Negras. Árvores Rubro-Negras. (Vermelho-Preta) Estrutura da Árvore. Estrutura da Árvore

Á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

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

Á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

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

Á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

Á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

Árvores & Árvores Binárias

Árvores & Árvores Binárias SCE 182 SCC122 Algoritmos Estruturas e Estruturas de Dados de Dados I Árvores & Árvores Binárias Prof. Material Original: Walter Aoiama Nagai; Maria das Graças Volpe Nunes; Definições Árvore T é um conjunto

Leia mais

{ = == NULL) = == NULL)

{ = == NULL) = == NULL) Com base no que foi discutido codifique uma função, na linguagem C, que implemente a remoção por cópia. void remocaoporcopia(arvorebinenc arvore) { ArvoreBinEnc prev, tmp = arvore; if (arvore->filhodir

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

ÁRVORE BINÁRIA DE BUSCA TDA-ABB

ÁRVORE BINÁRIA DE BUSCA TDA-ABB ÁRVORE BINÁRIA DE BUSCA TDA-ABB Conceitos Gerais sobre Árvores Uma árvore é uma estrutura hierárquica dividida em níveis, que ou está vazia, ou contém elementos chamados nós; Diferentemente da árvore 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

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

Á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

INF1007: Programação 2 10 Árvores Binárias. (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 10 Árvores Binárias. (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 10 Árvores Binárias (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Introdução Árvores binárias Representação em C Ordens de percurso em árvores binárias Altura de uma árvore

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

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

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

UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio;

UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; e-mail: sandra@icmc.usp.br Lista de Exercícios Árvores, Árvores Binárias, Árvores

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

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

Á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

Estruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos

Estruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos Estruturas de Dados Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos Árvores Conceitos Árvores binárias Árvores binárias de pesquisa Árvores binárias balanceadas Árvores ESTRUTURAS

Leia mais

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

ESTRUTURA DE DADOS DCC013. Árvore Binária de Busca ESTRUTURA DE DADOS DCC013 Árvore Binária de Busca Árvore Binária de Busca Propriedade fundamental da árvore binária de busca Valor da chave da raiz é Maior do que o valor da chave da subárvore da esquerda

Leia mais