ESTRUTURAS DE DADOS E ALGORITMOS ÁRVORE BINÁRIA

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

Download "ESTRUTURAS DE DADOS E ALGORITMOS ÁRVORE BINÁRIA"

Transcrição

1 ESTRUTURAS DE DADOS E ALGORITMOS 1 ÁRVORE BINÁRIA Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande

2 ÁRVORE (EXEMPLO) Como seria pesquisar a localização de um arquivo no sistema de arquivos se não tivéssemos diretórios? Para entradas realmente grandes, o acesso linear é proibitivo! Precisamos de alguma estrutura nao-linear de acesso mais eficiente. 2

3 ÁRVORE Estrutura não-linear com tempo de acesso em média O(log n). Coleção de nós em hierarquia Vazia ou Raiz (root) e zero ou mais subárvores Raiz da subárvore é um nó filho do nó raiz A raiz de uma árvore é unica! Não possui ciclos N nós, N-1 arestas 3

4 ÁRVORE (ILUSTRACAO) raiz root raiz... 4

5 ÁRVORE (ILUSTRACAO) raiz... folha (leaf) 5

6 ÁRVORE raiz Nível 0 6 Nível 1... Nível k Nível k + 1 Altura = k+1

7 ÁRVORE Uma árvore binária é uma estrutura de dados caracterizada por: Ou não tem elemento algum (árvore vazia) Ou tem um elemento distinto, denominado raiz, com duas referencias para duas estruturas diferentes, denominadas sub-árvore (filho) esquerda e sub-árvore (filho) direita Cada nó pode ter grau: 0, 1 ou 2 7

8 ÁRVORE A ligação entre os nós são vistas como apontadores direcionados do pai para os filhos. Por questoes de implementação apontadores podem existir também referêcias dos filhos para o pai O numero de filhos por nó diferenciam os vários tipos de arvores existentes. Cada nó da árvore encontra-se em determinado nível. A raiz encontra-se no nível zero. Propriedade fundamental: só existe um caminho da raiz para um outro nó da árvore. Altura de uma árvore: comprimento do caminho mais longo da raiz até as folhas 8

9 ÁRVORE (APLICABILIDADE) Representacao de expressoes aritméticas 5*3 + 4/2 + * /

10 EXERCÍCIO Qual a profundidade do nó 6? Qual a altura da árvore? Os nós 6 e 9 estão no mesmo nível? e 7 e 11? Qual o grau do nó 7? E de 9? E de 4? 10

11 ÁRVORES ESTRITAMENTE BINÁRIAS Cada nó possui grau 0 ou 2 Quantos nós terá uma AEB com n folhas? Desenhe diversas arvores e tente deduzir

12 EXERCÍCIO A árvore a seguir é estritamente binária? Justifique. 12

13 ÁRVORE BINÁRIA COMPLETA Todos os níveis são completos (folhas estão no mesmo nível) Qual a relacao que existe entre a altura de uma árvore binária completa e o número de elementos em cada nível? Qual a relacao que existe entre a altura de uma árvore binária completa e o número de elementos no total? nível 0 nos:1 total:1 nível 1 nos:2 total:3 nível 2 nos:4 total:7 nível 3 nos:8 total:15 13

14 ÁRVORE BINÁRIA COMPLETA Todos os níveis são completos (folhas estão no mesmo nível) Qual a relacao que existe entre a altura de uma árvore binária completa e o número de elementos em cada nível? Qual a relacao que existe entre a altura de uma árvore binária completa e o número de elementos no total? nível 0 nos:1 total:1 nível 1 nos:2 total:3 nível 2 nos:4 total:7 nível 3 nos:8 total:15 h 2 h 2 h

15 ÁRVORES BINÁRIAS (PERCURSOS) Formas de percurso em árvore binárias: Pré-ordem (RAIZ, ESQ, DIR) Visita raiz Percorre sub-árvore esquerda em pré-ordem Percorre sub-árvore direita em pré-ordem Em-ordem (simétrica) (ESQ, RAIZ, DIR) Percorre sub-árvore esquerda em ordem simétrica Visita raiz Percorre sub-árvore direita em ordem simétrica Pós-ordem (ESQ, DIR, RAIZ) Percorre sub-árvore esquerda em pós-ordem Percorre sub-árvore direita em pós-ordem Visita raiz Applet: 15

16 ARVORES BINÁRIAS Impressão em pré-ordem (R,E,D):

17 ARVORES BINÁRIAS Impressão em pré-ordem:

18 ARVORES BINÁRIAS Impressão em pré-ordem: 8 8,

19 ARVORES BINÁRIAS Impressão em pré-ordem: 8 8,4,

20 ARVORES BINÁRIAS Impressão em pré-ordem: 8 8,4,2,

21 ARVORES BINÁRIAS Impressão em pré-ordem: 8 8,4,2,1,

22 ARVORES BINÁRIAS Impressão em pré-ordem: 8 8,4,2,1,3,

23 ARVORES BINÁRIAS Impressão em pré-ordem: 8 8,4,2,1,3,6,

24 ARVORES BINÁRIAS Impressão em pré-ordem: 8 8,4,2,1,3,6,5,

25 ARVORES BINÁRIAS Impressão em pré-ordem: 8 8,4,2,1,3,6,5,7,

26 ARVORES BINÁRIAS Impressão em pré-ordem: 8 8,4,2,1,3,6,5,7, 12,

27 ARVORES BINÁRIAS Impressão em pré-ordem: 8 8,4,2,1,3,6,5,7, 12,10,

28 ARVORES BINÁRIAS Impressão em pré-ordem: 8 8,4,2,1,3,6,5,7, 12,10,9,

29 ARVORES BINÁRIAS Impressão em pré-ordem: 8 8,4,2,1,3,6,5,7, 12,10,9,11,

30 ARVORES BINÁRIAS Impressão em pré-ordem: 8 8,4,2,1,3,6,5,7, 12,10,9,11,14,

31 EXERCÍCIO Qual a saída do caminhamento em pré ordem da árvore binária a seguir? 31

32 ARVORES BINÁRIAS Impressão em ordem simétrica (E,R,D): 8 1,2,3,4,5,6,7,8,9 10,11,12,13,14,

33 EXERCÍCIO Qual a saída do percurso em ordem da árvore binária a seguir? 33

34 ARVORES BINÁRIAS Impressão em pós-ordem (E,D,R): 8 1,3,2,5,7,6,4,9,11,10 13,15,14,12,

35 EXERCÍCIO Qual a saída do caminhamento em pós ordem da árvore binária a seguir? 35

36 ÁRVORE BINÁRIA (IMPLEMENTAÇÃO) De que é composta uma árvore binária? Como implementar uma árvore binária? 36

37 ÁRVORE BINÁRIA (IMPLEMENTAÇÃO) De que é composta uma árvore binária? Como implementar uma árvore binária? public class BTNode<T> { protected T data; protected BTNode<T> left; protected BTNode<T> right; protected BTNode<T> parent; public boolean isempty(){ return this.data == null; } } //getters, setters, equals, tostring 37

38 ÁRVORE BINÁRIA (IMPLEMENTAÇÃO) De que é composta uma árvore binária? Como implementar uma árvore binária? public interface BT<T> { public BTNode<T> getroot(); public boolean isempty(); public int height(); public BTNode<T> search(t elem); public void insert(t value); public void remove(t key); public T[] preorder(); public T[] order(); public T[] postorder(); public int size(); } 38

39 ÁRVORE BINÁRIA (IMPLEMENTAÇÃO) Como representar uma árvore vazia? null data = null null null O construtor default de BTNode já gera uma árvore vazia? 39

40 ÁRVORE BINÁRIA (IMPLEMENTAÇÃO) Como representar uma árvore vazia? null O nó sentilena de uma árvore binária não contem dados data = null = NIL null null O construtor default de BTNode já gera uma árvore vazia? 40

41 ÁRVORE BINÁRIA (IMPLEMENTAÇÃO) Como representar uma árvore contendo apenas um nó? null null data folha data folha null null NIL NIL null null null null 41

42 ÁRVORE BINÁRIA DE BUSCA Árvore binária de busca ou árvore binária de pesquisa é uma árvore binária onde todos os nós armazenam dados comparáveis todos nós da sub-árvore à esquerda contêm valores menores do que o nó raiz todos os nós da subárvore à direita contêm valores maiores do que o nó raiz. x < x > x A principal utilização de árvores binárias são as árvores binária de busca 42

43 EXEMPLO 2 Subárvores < > < > > O quanto isso reduz o espaço da busca a cada passo? 43

44 ÁRVORE BINÁRIA DE BUSCA (IMPLEMENTAÇÃO) Uma BST é uma BT? Como implementar isso em Java? 44

45 ÁRVORE BINÁRIA DE BUSCA (IMPLEMENTAÇÃO) Uma BST é uma BT? Como implementar isso em Java? public class BSTNode<T extends Comparable<T>> extends BTNode<T> { } 45

46 ÁRVORE BINÁRIA DE BUSCA (IMPLEMENTAÇÃO) Uma BST é uma BT? Como implementar isso em Java? public interface BST<T extends Comparable<T>> extends BT<T> { public BTNode<T> maximum(); public BTNode<T> minimum(); public BTNode<T> successor(btnode<t> node); public BTNode<T> predecessor(btnode<t> node); } 46

47 PESQUISA BINÁRIA Como saber se um dado/valor/chave está na árvore? Se o nó é vazio (caso base) Árvore vazia não contém dado algum Se o nó é não-vazio Verifica se o dado do nó é igual à chave dada Se nao for Se a chave dada for menor que o dado do nó, pesquisa na sub-árvore a esquerda Senao pesquise na sub-árvore a direita 47

48 PESQUISA BINÁRIA (IMPLEMENTACAO) Qual o custo da busca? 48

49 ÁRVORE DESBALANCEADA O que ocorre com a pesquisa binária se a árvore estiver desbalanceada? 42 < x x 88 > x

50 ÁRVORE DESBALANCEADA O que ocorre com a pesquisa binária se a árvore estiver desbalanceada? 42 < x x 88 O(n) > x Solução: Outras árvores, como AVL, que veremos depois. 50

51 MINIMUM Como buscar o elemento mínimo de uma BST? Descer pela esquerda até que um NIL seja encontrado 51

52 MAXIMUM Como buscar o elemento máximo de uma BST? Descer pela direita até que um NIL seja encontrado 52

53 SUCESSOR Como buscar o sucessor de um elemento em uma BST? Sucessor é a menor das chaves maiores (menor descendente a direita) 53

54 SUCESSOR Como buscar o sucessor de um elemento em uma BST? Sucessor é a menor das chaves maiores (primeiro ascendente maior) 54

55 PREDECESSOR Como buscar o predecessor de um elemento em uma BST? Predecessor é a maior das chaves menores (maior descendente a esquerda). Simétrico ao sucessor Tree-Predecessor(x) if left[x]!= NIL then return Tree-Maximum(left[x]) y = p[x] while y!= NIL and x = left[y] do x = y y = p[y] return y 55

56 PREDECESSOR Como buscar o predecessor de um elemento em uma BST? Predecessor é a maior das chaves menores (primeiro ascendente maior). Simétrico ao sucessor Tree-Predecessor(x) if left[x]!= NIL then return Tree-Maximum(left[x]) y = p[x] while y!= NIL and x = left[y] do x = y y = p[y] return y 56

57 ÁRVORE BINÁRIA (INSERÇÃO) Acontece pela raiz (admitir elementos diferentes) Processar apenas chaves diferentes da raiz Se a chave for menor, insere no filho a esquerda Se a chave for maior insere no filho a direita Insercao sempre acontece em uma nova folha 57

58 EXERCÍCIO 1 Insira as chaves 46, 47, 44, 45 58

59 EXERCÍCIO 1 Insira as chaves 46, 47, 44,

60 EXERCÍCIO 1 Insira as chaves 46, 47, 44,

61 EXERCÍCIO 1 Insira as chaves 46, 47, 44,

62 EXERCÍCIO 1 Insira as chaves 46, 47, 44,

63 ÁRVORE BINÁRIA (INSERCAO) Recursivo Tree-insert(BSTNode node, T element){ if(node=nil){ node.data = element node.left = NIL node.right = NIL }else{ if(element< node.data){ Tree-insert(node.left, element) }else if (element > node.data){ Tree-insert (node.right, element) } } } Qual o custo? 63

64 ARVORES BINÁRIAS (REMOCAO) Remocoes em arvores binarias: Se o nó y (a ser removido) for uma folha entao remova-o. Se o nó y tem apenas um filho, então ligamos o pai de y ao filho de y Se tem dois filhos então traz o sucessor de y para o lugar dele e remove o sucessor

65 ARVORES BINÁRIAS (REMOCAO) Outras abordagens trabalham da seguinte forma: Se for folha remove Senao sobe o menor descendente a direita (sucessor) Se nao existir menor descendente a direita então sobe o maior descendente a esquerda (predecessor) Remove recursivamente o nó movido. 65

66 ARVORES BINÁRIAS (REMOCAO) remover 20 66

67 ARVORES BINÁRIAS (REMOCAO) 67

68 ARVORES BINÁRIAS (REMOCAO) remover 30 68

69 ARVORES BINÁRIAS (REMOCAO) remover

70 ARVORES BINÁRIAS (REMOCAO) remover

71 ARVORES BINÁRIAS (REMOCAO) 90 remover

72 ARVORES BINÁRIAS (REMOCAO)

73 Tree-remove(value) { BSTNode node = search(value) if(node!= NIL){ if(node is leaf){ ÁRVORE BINÁRIA (REMOCAO) } } node = NIL }else if (node has one child){ if node!= root if(node is left child){ if(node.left!= NIL) node.left is left child of node.parent else node.right is left child of node.parent else //node is right child if(node.left!= NIL) node.left is right child of parent else node.right is right child of parent else root = not NIL child of root }else{ BSTNode sucessor = sucessor(node); node.data = sucessor.data; Tree-remove(sucessor); } 73

74 ÁRVORE BINÁRIA (PERCURSO) Algoritmo do percurso em pre-ordem Como seria o algoritmo? 74

75 ÁRVORE BINÁRIA (PERCURSO) Algoritmo do percurso em pre-ordem preorder(bstnode node){ if(node!= NIL){ visit(node); preorder(node.left); preorder(node.right); } } visit(bstnode){ print(node.key); } Poderia fazer qualquer outro processamento 75

76 ÁRVORE BINÁRIA (PERCURSO) Algoritmo do percurso em ordem Como seria o algoritmo? 76

77 ÁRVORE BINÁRIA (PERCURSO) Algoritmo do percurso em ordem order(bstnode node){ if(node!= NIL){ order(node.left); visit(node); order(node.right); } } 77

78 ÁRVORE BINÁRIA (PERCURSO) Algoritmo do percurso em pós-ordem Como seria o algoritmo? 78

79 ÁRVORE BINÁRIA (PERCURSO) Algoritmo do percurso em pós-ordem postorder(bstnode node){ if(node!= NIL){ postorder(node.left); postorder(node.right); visit(node); } } 79

80 ÁRVORE BINÁRIA Como seria para calcular recursivamente o tamanho (quantidade de elementos) de uma árvore binária 1 size(root) = 1 + size(left) + size(right) size size 80

81 ÁRVORE BINÁRIA Como seria para calcular recursivamente o tamanho (quantidade de elementos) de uma árvore binária int size(){ return size(root) } int size(bstnode node){ if(node.isempty) return 0 else return 1 + size(node.left) + size(node.right) } 81

82 POSCOMP 2009 Nao necessariamente balanceada! 82

83 POSCOMP

84 POSCOMP

85 POSCOMP

86 REFERÊNCIAS Capítulo 13 86

Exemplo Árvore Binária

Exemplo Árvore Binária Árvores Rohit Gheyi Para entradas realmente grandes, o acesso linear O(n) de listas é proibi9vo Estrutura de dados não linear, cujas operações tem custos em geral O(log n) 1 2 Exemplo Como seria pesquisar

Leia mais

ESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA (ABORDAGEM RECURSIVA)

ESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA (ABORDAGEM RECURSIVA) ESTRUTURAS DE DADOS E ALGORITMOS 1 LISTA LIGADA (ABORDAGEM RECURSIVA) Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande QUESTÕES DE IMPLEMENTAÇÃO Implementacao

Leia mais

ESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA

ESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA ESTRUTURAS DE DADOS E ALGORITMOS 1 LISTA LIGADA Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande LISTA LIGADA (LINKED LIST) É uma estrutura de dados em que

Leia mais

Árvores e Mapas. Luís Lopes. Estruturas de Dados DCC-FCUP

Árvores e Mapas. Luís Lopes. Estruturas de Dados DCC-FCUP Árvores e Mapas Luís Lopes DCC-FCUP Estruturas de Dados Estruturas não lineares Os arrays e as listas são exemplos de estruturas de dados lineares, cada elemento tem: um predecessor único (excepto o primeiro

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

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 [email protected] Árvores (parte 3) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

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

Á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

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. Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque. Engenharia da Computação. Poli - UPE

Árvores. Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque. Engenharia da Computação. Poli - UPE Árvores Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque Engenharia da Computação Poli - UPE Motivação Para entradas realmente grandes, o acesso linear de listas é proibitivo Estrutura de dados

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

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

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 [email protected] 6 8 1 2 Origem Adelson Velskii, G.; E. M. Landis (1962). "An algorithm

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

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: [email protected] Lista de Exercícios Árvores, Árvores Binárias, Árvores

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

PAA-DCC-UFAM. Árvores. Universidade Federal do Amazonas Departamento de Eletrônica e Computação

PAA-DCC-UFAM. Árvores. Universidade Federal do Amazonas Departamento de Eletrônica e Computação Árvores Universidade Federal do Amazonas Departamento de Eletrônica e Computação Árvores Árvores são conjuntos cujos elementos guardam uma relação hierarquica entre eles Terminologia (1) A é o nodo raiz.

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

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 [email protected] Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados

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

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

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

Aula T13 BCC202 Árvores. Túlio Toffolo

Aula T13 BCC202 Árvores. Túlio Toffolo Aula T13 BCC202 Árvores Túlio Toffolo www.decom.ufop.br/toffolo Conceitos básicos n Organiza um conjunto de acordo com uma estrutura hierárquica. n Contém elementos que são chamados de nós n O pai de todos

Leia mais

Pesquisa em memória primária

Pesquisa em memória primária Pesquisa em memória primária Pesquisa em memória primária Recuperar informação a partir de uma grande massa de informação previamente armazenada. Existem vários métodos de pesquisa, depende de: Tamanho

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 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. Árvores, árvores binárias e percursos. Cristina Boeres

ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres ESTRUTURA DE DADOS Árvores, árvores binárias e percursos Cristina Boeres 2 Árvores! utilizada em muitas aplicações! modela uma hierarquia entre elementos árvore genealógica diagrama hierárquico de uma

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

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

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Exercícios: Árvores 1. Utilizando os conceitos de grafos, defina uma árvore.

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 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 [email protected]

Leia mais

8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 8. Árvores Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 Árvores - estruturas não lineares (1) Uma lista é um exemplo de uma estrutura de dados

Leia mais

8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 8. Árvores Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 Árvores - estruturas não lineares (1) Uma lista é um exemplo de uma estrutura de dados

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

Á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

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

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

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

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

ÁRVORES E ÁRVORES BINÁRIAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORES E ÁRVORES BINÁRIAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORES Árvores Árvores Binárias INSTITUTO DE COMPUTAÇÃO - UFF 2 ÁRVORES Fonte de consulta: Szwarcfiter, J.; Markezon,

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

Á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

Árvores Binárias de Pesquisa. Programação II Prof. Mateus Raeder. Árvores Binárias de Pesquisa. Árvores Binárias de Pesquisa. Classe Nodo Binário

Árvores Binárias de Pesquisa. Programação II Prof. Mateus Raeder. Árvores Binárias de Pesquisa. Árvores Binárias de Pesquisa. Classe Nodo Binário Programação II Conhecida também como: Árvore binária ordenada Árvore binária de busca Aresenta relação de ordem entre os nodos Ordem definida através do camo chamado chave CHAVE Prof. Mateus Raeder Chaves

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

Á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

Á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

Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias

Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias Conceitos gerais Representação por Contiguidade Física Representação por Encadeamento Operações 2 Conceitos gerais Uma árvore

Leia mais

Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação

Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação Árvores N-árias, Binárias, Busca Vanessa Maia Berny Mestrado em Ciência da Computação Disciplina de Estrutura de Dados Prof. Dr. Luzzardi, Paulo Roberto Gomes Abril de 2008 Árvores N-árias São estruturas

Leia mais

Prova 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins

Prova 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins Prova PMR0 o semestre 0 Prof Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço ( pontos) Uma árvore binária de busca é uma árvore binária na qual para qualquer sub-árvore

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

Á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

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 [email protected] Fonte: Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar o número de comparações efetuadas,

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

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