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

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

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

Transcrição

1 Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira kkco@dei.unicap.br

2 Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados sequencialmente. Efetivamente são chamadas lineares porque cada elemento tem um único sucessor. Em muitas aplicações a organização dos elementos apresenta-se não linear, dado que qualquer membro pode apresentar múltiplos sucessores. Algoritmos e Estrutura de Dados II - Karina Oliveira 2

3 Árvores Uma das mais importantes classes de estruturas de dados em computação Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas usando-se algoritmos relativamente simples, recursivos e de eficiência bastante razoável. Veremos os conceitos básicos desta estrutura de dados e estudaremos as árvores binárias de busca, usadas em aplicações de busca em memória principal. Algoritmos e Estrutura de Dados II - Karina Oliveira 3

4 Árvores - Definição Árvore é uma estrutura de dados bidimensional, não linear. Possui um conjunto finito de elementos (N 0), denominados nós ou vértices Se N = 0, dizemos que a árvore é nula; Se N > 0, então: Há um nó especial denominado raiz da árvore; Os demais nós formam conjuntos disjuntos T 1,..., T m, onde cada um destes conjuntos é também uma árvore; As árvores T i são denominadas subárvores. Algoritmos e Estrutura de Dados II - Karina Oliveira 4

5 Representação Gráfica de uma Árvore Raiz T 1... T 2 T 3 T 4 T m Árvore Generalizada Algoritmos e Estrutura de Dados II - Karina Oliveira 5

6 Representação Gráfica de uma Exemplo: Árvore A Raiz T 1 B C D E F G H I J K L M Algoritmos e Estrutura de Dados II - Karina Oliveira 6

7 Árvores - Terminologia A Raiz A raiz da árvore é pai da raiz de cada subárvore e a raiz de cada subárvore é filha da raiz da árvore. Na árvore ao lado: T 1 B C D A raiz é o nó A; O nó A é pai dos nós B, C e D; E F G H I J Os nós B, C e D são raízes de cada uma das subárvores; K L M O nó B tem 3 filhos: E, F e G; Os nós E, F e G são irmãos; Nós sem filhos são chamados de folhas: E, K, G, L, M, I e J; Algoritmos e Estrutura de Dados II - Karina Oliveira 7

8 Árvores - Terminologia O caminho de um nó n 1 para um nó n k é definido como a seqüência de nós n 1,n 2,..,n k, tal que n i é o pai de n i+1 para 1 i < k. Observe que em uma árvore só existe um caminho da raiz até qualquer nó. O comprimento deste caminho é o número de arcos no caminho, ou seja, k-1. A B C D E Algoritmos e Estrutura de Dados II - Karina Oliveira 8 F

9 Árvores - Terminologia Para qualquer nó n i, a profundidade ou nível de n i é o comprimento do único caminho da raiz para n i.. A raiz tem nível zero. A altura de n i é o maior caminho de n i para uma folha Assim, todas as folhas tem altura zero. Altura da árvore é igual a altura da raiz. D B A E C F Exemplo: Profundidade de B é 1; Altura de B é 2; Altura da árvore é 3; 9

10 Árvores - Terminologia O grau de n i é o número de nós descendentes do nó n i, ou seja, o número de subárvores de um nó. As folhas têm grau zero. O grau da árvore é o máximo dos graus de todos os seus nós. Algoritmos e Estrutura de Dados II - Karina Oliveira 10

11 Árvores - Terminologia D B E I F J K A G C Exemplo: H Nó A, nó raiz, tem grau dois, pois possui dois filhos, os nós B e C; Nó B, grau três, e é pai dos nós D, E e F; Nós D, E, I, K, G e H são nós folhas, e portanto possuem grau zero; Caminho até o nó J: caminho por A, B, F e J. Algoritmos e Estrutura de Dados II - Karina Oliveira 11

12 Árvores - Terminologia B A C Exemplo: A árvore possui grau três, pois este é o número máximo de nós descendentes de um único pai (Grau de B); D E F G H A árvore tem altura igual a 4; I J Nó B tem altura igual a 3; Nó C tem altura igual a 1; Nó K tem altura igual a 0; K O nível do nó G é três. Algoritmos e Estrutura de Dados II - Karina Oliveira 12

13 Árvores - Aplicação Utilizada em casos onde os dados a serem representados possuem relações hierárquicas entre si. Exemplos: Organograma de uma empresa; divisão de um livro em capítulos, seções, tópicos, etc.; árvore genealógica de uma pessoa; universidade e seus centros. Exemplo: Uma universidade é composta de vários centros; Cada centro é composto por vários cursos; Cada curso oferece um conjunto de disciplinas; Cada disciplina possui alunos matriculados; Algoritmos e Estrutura de Dados II - Karina Oliveira 13

14 Árvores - Aplicação CATÓLICA CCT CTCH CCS Ciência da Computação AEDII Aluno 1 Aluno 2... Algoritmos e Estrutura de Dados II - Karina Oliveira 14

15 Algoritmos e Estrutura de Dados II Árvores Binárias Prof a Karina Oliveira kkco@dei.unicap.br

16 Árvores Binárias - Definição Possui um conjunto finito de elementos (N 0) denominados nós ou vértices Se N = 0, dizemos que a árvore é nula; Se N > 0, então: Há um nó especial denominado raiz da árvore; Os demais nós formam dois conjuntos disjuntos T 1 e T 2, onde cada um destes conjuntos também é uma árvore binária; As árvores T i são denominadas subárvores binárias. Algoritmos e Estrutura de Dados II - Karina Oliveira 16

17 Árvores Binárias - Definição Uma árvore binária é uma árvore de no máximo grau dois, ou seja, nenhum nó pode ter mais que dois filhos A A B C B C D E D E F Árvore Binária Árvore Não Binária Algoritmos e Estrutura de Dados II - Karina Oliveira 17

18 Tipos Especiais de Árvores Binárias Árvore Estritamente Binária É quando todos os nós não terminais da árvore binária possuem subárvores esquerda e direita não vazias. Exemplo: A B C D E F G Algoritmos e Estrutura de Dados II - Karina Oliveira 18

19 Tipos Especiais de Árvores Binárias Árvore Binária Completa É aquela com a propriedade: Se n é um nó com alguma das subárvores vazias, então n se localiza no último (maior) ou penúltimo nível da árvore. Exemplo: A B C D E F G H Algoritmos e Estrutura de Dados II - Karina Oliveira 19 I

20 Tipos Especiais de Árvores Binárias Árvore Binária Cheia É aquela em que, se n é um nó com alguma das suas subárvores vazias, então n se localiza no último nível. É uma árvore que tem todos os nós internos com 2 filhos e onde todas as folhas estão na mesma profundidade. Exemplo: A B C D E F G Toda árvore binária cheia é completa e estritamente binária. Algoritmos e Estrutura de Dados II - Karina Oliveira 20

21 Árvores Binárias Implementação Encadeada: struct no { no *dir; int info; no *esq; }; no *arvbin; arvbin E representação: B J A D G L Algoritmos e Estrutura de Dados II - Karina Oliveira 21

22 Percurso em Árvores Binárias Um percurso é uma visita sistemática a cada um dos nós da árvore. Visitar um nó significa operar, de alguma forma, com a informação nele contida. Tipos: Em-ordem Pré-ordem Pós-ordem Em nível Algoritmos e Estrutura de Dados II - Karina Oliveira 22

23 Percurso em Árvores Binárias Em-Ordem 1.Percorrer a subárvore à esquerda 2.Visitar a raiz 3.Percorrer a subárvore à direita D A B C E A B C D E Algoritmos e Estrutura de Dados II - Karina Oliveira 23

24 Percurso em Árvores Binárias Em-Ordem void emordem (no *raiz) { } if (raiz!= NULL) { } emordem(raiz->esq); printf( %i \n, raiz->info); emordem(raiz->dir); Algoritmos e Estrutura de Dados II - Karina Oliveira 24

25 Percurso em Árvores Binárias Pré-Ordem 1.Visitar a raiz 2.Percorrer a subárvore à esquerda 3.Percorrer a subárvore à direita D A B C E D B A C E Algoritmos e Estrutura de Dados II - Karina Oliveira 25

26 Percurso em Árvores Binárias Pré-Ordem void preordem (no *raiz) { if (raiz!= NULL) { printf( %i \n, raiz->info); preordem(raiz->esq); preordem(raiz->dir); } } Algoritmos e Estrutura de Dados II - Karina Oliveira 26

27 Percurso em Árvores Binárias Pós-Ordem 1.Percorrer a subárvore à esquerda 2.Percorrer a subárvore à direita 3.Visitar a raiz D B E A C B E D A C Algoritmos e Estrutura de Dados II - Karina Oliveira 27

28 Percurso em Árvores Binárias Pós-Ordem void posordem (no *raiz) { if (raiz!= NULL) { posordem(raiz->esq); posordem(raiz->dir); printf( %i \n, raiz->info); } } Algoritmos e Estrutura de Dados II - Karina Oliveira 28

29 Percurso em Árvores Binárias Por Nível Nível 0 D Nível 1 B E Nível 2 A C D B E A C Algoritmos e Estrutura de Dados II - Karina Oliveira 29

30 Por Nível void pornivel (no *raiz) { fila *ini; no *aux; if (raiz!= NULL) { criarfila(ini); insfila(ini, raiz); while (isempty(fila) == false) { aux = remfila(ini); if (aux->esq!= NULL) insfila(ini, aux->esq); if (aux->dir!= NULL) insfila(ini, aux->dir); printf("%d \n", aux->info); } } } Percurso em Árvores Binárias Algoritmos e Estrutura de Dados II - Karina Oliveira 30

31 Árvores Binárias - Aplicação Exemplo: Representação de expressões aritméticas Prioridade das operações fica implícita: Operador de menor prioridade fica na raiz da árvore; Subexpressão que forma o operando da esquerda deste operador dá origem a subárvore esquerda da raiz; Subexpressão que forma o operando da direita deste operador dá origem a subárvore direita da raiz; Operandos ficam sempre nas folhas; Se a expressão possuir parênteses estes são desprezados. Algoritmos e Estrutura de Dados II - Karina Oliveira 31

32 Árvores Binárias - Aplicação Exemplo 1: Exemplo 2: A + B * 2 + (A + B) * 2 * A * + 2 B 2 A B Algoritmos e Estrutura de Dados II - Karina Oliveira 32

33 Árvores Binárias - Aplicação De acordo com o caminhamento escolhido pode-se gerar a expressão nas seguintes notações: Pós-ordem: A B 2 * + Em-ordem: A + B * 2 Pré-ordem: + A * B 2 Algoritmos e Estrutura de Dados II - Karina Oliveira 33

34 Algoritmos e Estrutura de Dados II Árvores Binárias de Busca Prof a Karina Oliveira kkco@dei.unicap.br

35 Árvores Binárias de Busca - Definição Seja T uma ABB, então possui as seguintes características: T possui n nós. Cada nó u corresponde a uma chave distinta s j e S e possui como rótulo o valor r(u) = s j ; Seja um nó u de T. Seja também u 1, pertencente à subárvore esquerda de u. Então, r(u 1 ) < r(u). Analogamente, se u 2 pertence a subárvore direita de u, então, r(u2) > r(u). Algoritmos e Estrutura de Dados II - Karina Oliveira 35

36 Árvores Binárias de Busca As subárvores de uma ABB são denominadas subárvore esquerda e subárvore direita e também são ABBs. Árvore Binária de Busca (Niklaus Wirth) Uma árvore que se encontra organizada de tal forma que, para cada nó T i, todas as chaves da subárvore à esquerda de T i são menores que T i e à direita são maiores que T i. Algoritmos e Estrutura de Dados II - Karina Oliveira 36

37 Árvores Binárias de Busca Diferenciação Árvore Binária de Busca Árvore Binária Algoritmos e Estrutura de Dados II - Karina Oliveira 37

38 Árvores Binárias de Busca Em uma ABB é possível encontrar qualquer chave existente caminhando na árvore: Sempre à esquerda toda vez que a chave procurada for menor do que a chave do nó visitado, e; Sempre à direita toda vez que for maior. A escolha da direção de busca só depende da chave que se procura e da chave que o nó atual possui. Algoritmos e Estrutura de Dados II - Karina Oliveira 38

39 Árvores Binárias de Busca Uma propriedade importante de uma árvore binária de busca é que o valor médio de sua profundidade é log 2 n, onde n é a quantidade de nós na árvore n = 8 log 2 8 = Algoritmos e Estrutura de Dados II - Karina Oliveira 39

40 Árvores Binárias de Busca Infelizmente, a profundidade pode chegar a (n 1) n = 5 profundidade = Algoritmos e Estrutura de Dados II - Karina Oliveira 40

41 Estrutura de uma ABB Estrutura do nó de uma ABB que armazena um valor inteiro em C: struct no { no *dir; int info; no *esq; }; no *raiz; raiz Algoritmos e Estrutura de Dados II - Karina Oliveira 41

42 Operações em uma ABB Dado que a definição de árvores é recursiva, geralmente suas operações também são definidas recursivamente Operações: Iniciar Árvore Pesquisar Inserir Remover Caminhar (Percorrer) Algoritmos e Estrutura de Dados II - Karina Oliveira 42

43 Operações em uma ABB Iniciar Árvore void iniciar(no *&raiz){ } raiz = NULL; Algoritmos e Estrutura de Dados II - Karina Oliveira 43

44 Operações em uma ABB Pesquisar Elemento: Considere uma ABB T e um elemento X Se T é uma árvore nula: busca impossível; Se a raiz de T armazena o elemento X: solução trivial; Se o valor de X é menor que o valor armazenado na raiz de T: prosseguir com a busca na subárvore esquerda de T; Se o valor de X é maior que o valor armazenado na raiz de T: prosseguir com a busca na subárvore direita de T; Algoritmos e Estrutura de Dados II - Karina Oliveira 44

45 Operações em uma ABB Pesquisar - Procurar por um nó na árvore cuja chave seja igual a elem. Retorna um apontador para o nó que contém a chave elem, ou NULL se elem não está na árvore. no * pesquisar(no *raiz, int elem) { } if (raiz == NULL){ return NULL; }else if (elem == raiz->info){ return raiz; }else if (elem < raiz->info){ return pesquisar(raiz->esq, elem); }else return pesquisar(raiz->dir, elem); Algoritmos e Estrutura de Dados II - Karina Oliveira 45

46 Operações em uma ABB Pesquisar Mínimo - Procurar pelo menor elemento presente na árvore. no * pesquisarminimo(no *raiz) { if (raiz == NULL){ return NULL; }else if (raiz->esq == NULL){ return raiz; }else return pesquisarminimo(raiz->esq); } Algoritmos e Estrutura de Dados II - Karina Oliveira 46

47 Exercícios: Operações em uma ABB Pesquisar Versão iterativa para a função pesquisar. Pesquisar Máximo - Procurar pelo maior elemento presente na árvore. Versões recursiva e iterativa. Algoritmos e Estrutura de Dados II - Karina Oliveira 47

48 Inserir Operações em uma ABB Inserção em uma lista encadeada não há movimentação de dados como em vetores, apenas ajustes de ponteiros para colocar o elemento na posição correta Início, meio ou fim Em uma ABB, os elementos inseridos entram sempre na condição de folha. Algoritmos e Estrutura de Dados II - Karina Oliveira 48

49 Operações em uma ABB Inserir Elemento: Considere uma ABB T e um elemento X Se T é uma árvore vazia: solução trivial; Se T não é vazia e o valor de X é menor que a raiz de T: insere X na subárvore esquerda de T; Se T não é vazia e o valor de X é maior que a raiz de T: insere X na subárvore direita de T. Algoritmos e Estrutura de Dados II - Karina Oliveira 49

50 Operações em uma ABB Inserir Exemplo: Inserção de um elemento com chave 14 chave = > Algoritmos e Estrutura de Dados II - Karina Oliveira 50

51 Operações em uma ABB Inserir Exemplo: Inserção de um elemento com chave 14 chave = > < Algoritmos e Estrutura de Dados II - Karina Oliveira 51

52 Operações em uma ABB Inserir Exemplo: Inserção de um elemento com chave 14 chave = > 8 14 > < Algoritmos e Estrutura de Dados II - Karina Oliveira 52

53 Operações em uma ABB Inserir Exemplo: Inserção de um elemento com chave 14 chave = > 8 14 > < > Algoritmos e Estrutura de Dados II - Karina Oliveira 53

54 Operações em uma ABB Inserir Exemplo: Inserção de um elemento com chave 14 chave = > 8 14 > < > Algoritmos e Estrutura de Dados II - Karina Oliveira 54 14

55 Inserir Operações em uma ABB Duplicatas: 1) Manter um campo extra no nó para indicar quantidade de ocorrência adiciona espaço extra na árvore toda; 2) Duplicar o nó Aumenta a profundidade da árvore. Algoritmos e Estrutura de Dados II - Karina Oliveira 55

56 Operações em uma ABB Inserir void inserir(no *&raiz, int elem) { if (raiz == NULL) { raiz = new no; raiz->info = elem; raiz->esq = NULL; raiz->dir = NULL; }else if (elem < raiz->info){ inserir(raiz->esq,elem); }else if (elem > raiz->info){{ inserir(raiz->dir,elem); } } Algoritmos e Estrutura de Dados II - Karina Oliveira 56

57 Exercício: Operações em uma ABB Inserir Versão iterativa para a função inserir. Algoritmos e Estrutura de Dados II - Karina Oliveira 57

58 Operações em uma ABB Remover Três Possíveis Casos: Primeiro, procura-se na árvore o nó que contém o elemento X. Caso 1: Se o nó é uma folha, ele pode ser removido imediatamente; Algoritmos e Estrutura de Dados II - Karina Oliveira 58

59 Operações em uma ABB Remover Caso 1 - Exemplo: Eliminação de elemento com chave 15 - Nó folha 8 ANTES Algoritmos e Estrutura de Dados II - Karina Oliveira 59 13

60 Operações em uma ABB Remover Caso 1 - Exemplo: Eliminação de elemento com chave 15 - Nó folha 8 DEPOIS Algoritmos e Estrutura de Dados II - Karina Oliveira 60 13

61 Operações em uma ABB Remover Três Casos: Primeiro, procura-se na árvore o nó que contém o elemento X Caso 2: Se o nó tem apenas um filho, o nó pode ser removido após seu pai ser ajustado o ponteiro do pai passa a apontar para o filho do nó a ser removido; Algoritmos e Estrutura de Dados II - Karina Oliveira 61

62 Operações em uma ABB Remover Caso 2 - Exemplo: Eliminação de elemento com chave 5 - Nó com um filho 8 ANTES Algoritmos e Estrutura de Dados II - Karina Oliveira 62 13

63 Operações em uma ABB Remover Caso 2 - Exemplo: Eliminação de elemento com chave 5 - Nó com um filho 8 DEPOIS Algoritmos e Estrutura de Dados II - Karina Oliveira 63 13

64 Operações em uma ABB Remover Três Casos: Primeiro, procura-se na árvore o nó que contém o elemento X Caso 3: Se o nó tem dois filhos, não é possível que os dois filhos ocupem o lugar do pai. O conteúdo do nó a ser removido X é então substituído pelo conteúdo do nó que tem a menor chave na subárvore direita de X, e em seguida, este último nó é removido. Algoritmos e Estrutura de Dados II - Karina Oliveira 64

65 Operações em uma ABB Remover Caso 3 - Exemplo: Eliminação de elemento com chave 11 - Nó com dois filhos 8 ANTES Algoritmos e Estrutura de Dados II - Karina Oliveira 65 13

66 Operações em uma ABB Remover Caso 3 - Exemplo: Eliminação de elemento com chave 11 - Nó com dois filhos 8 DEPOIS Algoritmos e Estrutura de Dados II - Karina Oliveira 66

67 Operações em uma ABB Remover - Resumo Considere uma ABB T e um elemento X a ser removido que se encontra na raiz de T: Se a raiz não possui filhos: remover a raiz e anular T; Se a raiz possui um único filho: remover a raiz e substituí-la por seu filho; Se a raiz possui dois filhos: escolher o nó que armazena o menor elemento na subárvore direita e substituir a raiz por ele. Algoritmos e Estrutura de Dados II - Karina Oliveira 67

68 Remover void remover(no *&raiz, int elem) { } Operações em uma ABB if (raiz == NULL) printf( Elemento não encontrado.\n ); else if (elem == raiz->info) remover_no(raiz); else if (elem < raiz->info) remover(raiz->esq,elem); else remover(raiz->dir,elem); Algoritmos e Estrutura de Dados II - Karina Oliveira 68

69 Operações em uma ABB - Remover void remover_no( no *&raiz) { no *pos; pos = raiz; if (raiz->esq == NULL && raiz->dir == NULL) // Não tem ambos os filhos raiz = NULL; else if (raiz->esq == NULL) // Não tem filho a esquerda raiz = raiz->dir; else if (raiz->dir == NULL) // Não tem filho a direita raiz = raiz->esq; else{ // Tem ambos os filhos pos = menor(raiz->dir); raiz->info = pos->info; } delete pos; } Algoritmos e Estrutura de Dados II - Karina Oliveira 69

70 Remover no * menor(no *&raiz) { } Operações em uma ABB no *aux = raiz; if (aux->esq == NULL) { raiz = raiz->dir; return aux; }else return menor(raiz->esq); Algoritmos e Estrutura de Dados II - Karina Oliveira 70

71 Exercício: Operações em uma ABB Remover Versão iterativa para a função remover. Algoritmos e Estrutura de Dados II - Karina Oliveira 71

72 Operações em uma ABB Caminhar O caminhamento em uma ABB é idêntico ao de uma árvore binária: Em-ordem Pré-ordem Pós-ordem Em nível Algoritmos e Estrutura de Dados II - Karina Oliveira 72

73 Bibliografia Recomendada VELOSO, Paulo. Estruturas de Dados. 1. ed. Rio de janeiro: Campus, SZWARCFITER, Jayme Luiz; MARKENZON, Lilian. Estruturas de Dados e seus Algoritmos. 2. ed. rev. Rio de Janeiro: LTC, PEREIRA, Silvio Do Lago. Estruturas de Dados Fundamentais: Conceitos e Aplicações. 4. ed. São Paulo: Érica, Algoritmos e Estrutura de Dados II - Karina Oliveira 73

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

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

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

Á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

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

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

INE5408 Estruturas de Dados

INE5408 Estruturas de Dados INE5408 Estruturas de Dados Introdução a Árvores - Conceitos - Árvores Binárias - Métodos e algoritmos de percurso - Métodos e algoritmos de balanceamento Introdução Árvores são estruturas de dados que

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

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

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

AED1 - Árvores. Hebert Coelho. Instituto de Informática Universidade Federal de Goiás. HC AED1-Árvores 1/49

AED1 - Árvores. Hebert Coelho. Instituto de Informática Universidade Federal de Goiás. HC AED1-Árvores 1/49 AED1 - Árvores Hebert Coelho Instituto de Informática Universidade Federal de Goiás HC AED1-Árvores 1/49 Roteiro Árvore; Árvores - Representações; Árvores - Conceitos; Árvores Binárias; Árvores Binárias

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

Á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

Árvores. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Árvores. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Árvores David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Conceitos básicos Organiza um conjunto de acordo com uma estrutura hierárquica. Contém elementos que são chamados de nós O pai de todos

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

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

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

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

Á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 Conteúdo 2 Árvores Definições Conceitos Algoritmos Árvore Binária Implementação Algoritmos Árvore

Leia mais

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 08: Árvores

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 08: Árvores Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 08: Árvores Conceitos básicos Organiza um conjunto de acordo com uma estrutura hierárquica. Contém elementos que são chamados de nós O pai

Leia mais

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão Árvores 1 Árvores! utilizada em muitas aplicações! modela uma hierarquia entre elementos! árvore genealógica! diagrama hierárquico de uma organização! modelagem de algoritmos! O conceito de árvores está

Leia mais

ÁRVORES. Árvores. Árvores. Prof. Yandre Maldonado e Gomes da Costa

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

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

Á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 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. Listas e árvores. Árvores. Árvores. Árvores. Árvores 03/11/2011. Listas lineares

Árvores. Listas e árvores. Árvores. Árvores. Árvores. Árvores 03/11/2011. Listas lineares istas e árvores istas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral S-502 lgoritmos e struturas de ados iversas aplicações necessitam de estruturas mais complexas

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. Profº Carlos Alberto Teixeira Batista

Estruturas de Dados. Profº Carlos Alberto Teixeira Batista Estruturas de Dados Profº Carlos Alberto Teixeira Batista E-mail: carlos.batista@facape.br carlos36_batista@yahoo.com.br Árvores São estruturas de dados adequadas para a representação de hierarquias. Uma

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

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

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

Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP

Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Árvores Binárias Árvores Árvores representam estruturas de dados caracterizadas por uma relação hierárquica da informação:

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

Organizam dados de forma hierárquica. Acontecem com frequência na natureza. Fáceis de representar e manipular com computadores

Organizam dados de forma hierárquica. Acontecem com frequência na natureza. Fáceis de representar e manipular com computadores Organizam dados de forma hierárquica Acontecem com frequência na natureza Fáceis de representar e manipular com computadores Úteis para várias tarefas Raiz Folhas Nós internos Filhos Pai Descendentes

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

Universidade Federal de Mato Grosso

Universidade Federal de Mato Grosso Universidade Federal de Mato Grosso Estrutura de Dados II Curso de Ciência da Computação Prof. Thiago P. da Silva thiagosilva@ufmt.br Material basedado em [Kurose&Ross 2009] e [Gonçalves, 2007] Agenda

Leia mais

Árvores. Árvores Binárias. Conceitos gerais Terminologia Forma de Representação de Árvores. Conceitos gerais Operações

Árvores. Árvores Binárias. Conceitos gerais Terminologia Forma de Representação de Árvores. Conceitos gerais Operações Árvores Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias Conceitos gerais Operações 2 Conceitos gerais Uma árvore é uma estrutura de dados que se caracteriza por uma relação

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

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

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

Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 053/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua

Leia mais

CES-11. Árvores. Conceito de árvore. Definição recursiva de árvore Definições associadas a árvore. Ordenação dos nós de uma árvore

CES-11. Árvores. Conceito de árvore. Definição recursiva de árvore Definições associadas a árvore. Ordenação dos nós de uma árvore Árvores Conceito de árvore CES-11 Definição recursiva de árvore Definições associadas a árvore Representações de árvores Ordenação dos nós de uma árvore CONCEITO DE ÁRVORE Tantos as pilhas como as filas

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 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. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP

Árvores. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP Árvores lgoritmos e Estruturas de Dados I Nesta aula veremos conceitos e definições sobre árvores Diferentemente das estruturas de pilhas, filas e listas que são lineares, uma árvore é uma estrutura de

Leia mais

CES-11. Algoritmos e Estruturas de Dados

CES-11. Algoritmos e Estruturas de Dados CES-11 Algoritmos e Estruturas de Dados CES-11 Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Conceito de árvore Tantos as pilhas como as filas são estruturas lineares, isto é, de uma única

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

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 4: Listas Estáticas e Dinâmicas Listas Estáticas: com Vetores Dinâmicas: Listas Ligadas (com ponteiros) Variáveis e Métodos de Controle:

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

Arvores, Percursos não recursivos, Arvores heterogêneas. Aula 19

Arvores, Percursos não recursivos, Arvores heterogêneas. Aula 19 Arvores, Percursos não recursivos, Arvores heterogêneas Aula 19 Arvores binárias encadeadas Percorrer uma árvore é uma operação muito comum e seria útil encontrar um método mais eficiente para implementar

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

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra Árvores CES-11 Conceito de árvore Definição recursiva de árvore Definições Representações de árvores Ordenação

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

Á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

Árvores Conceitos gerais

Árvores Conceitos gerais http://www.mysticfractal.com/ FractalImaginator.html Árvores Conceitos gerais 9/11 Nesta aula veremos conceitos e definições sobre árvores Diferentemente das estruturas de pilhas, filas e listas que são

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

(a) todos os nós irmãos da árvore m-ária são interligados; (b) todas as conexões pai-filho são removidas, exceto a primeira de cada grupo.

(a) todos os nós irmãos da árvore m-ária são interligados; (b) todas as conexões pai-filho são removidas, exceto a primeira de cada grupo. 3. Listas Não Lineares Quando existe mais de um caminho possíveis pela estrutura, esta é dita não linear. Exemplos clássicos de estruturas deste tipo são as árvores e grafos (estes estudados em Algoritmos

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

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

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

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome

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

Á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

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

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

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 I

Algoritmos e Estruturas de Dados I Algoritmos e Estruturas de Dados I Aula 19: - Comparação empírica de algoritmos de ordenação - Árvores Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2016 1 Comparação empírica de algoritmos de

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

Estruturas de Dados. Árvores. Onde Estamos? Introdução à estrutura de dados. Alocação dinâmica de memória. Pilhas. Filas.

Estruturas de Dados. Árvores. Onde Estamos? Introdução à estrutura de dados. Alocação dinâmica de memória. Pilhas. Filas. Estruturas de Dados Árvores Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Ementa Introdução à estrutura de dados. Alocação estática de memória. Alocação dinâmica de memória.

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

Unidade: Estruturas de Dados Não Lineares. Unidade I:

Unidade: Estruturas de Dados Não Lineares. Unidade I: Unidade: Estruturas de Dados Não Lineares Unidade I: 0 Unidade: Estruturas de Dados Não Lineares 1 - Recursividade Um algoritmo que para resolver um problema divide-o em subproblemas mais simples, cujas

Leia mais

Aula 14 Listas Duplamente Encadeadas. prof Leticia Winkler

Aula 14 Listas Duplamente Encadeadas. prof Leticia Winkler Aula 14 Listas Duplamente Encadeadas prof Leticia Winkler 1 Lista Duplamente Encadeada É um tipo de lista encadeada que pode ser vazia (NULL) ou que pode ter um ou mais nós, sendo que cada nó possui dois

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

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

Capítulo 8: Abstrações de dados

Capítulo 8: Abstrações de dados Capítulo 8: Abstrações de dados Ciência da computação: Uma visão abrangente 11a Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Estruturas de dados básicas Matriz homogênea Matriz

Leia mais

Árvores - Conceitos. Roseli Ap. Francelin Romero

Árvores - Conceitos. Roseli Ap. Francelin Romero Árvores - Conceitos Roseli Ap. Francelin Romero Problema Representações/Implementações do TAD Lista Linear: Lista encadeada dinâmica eficiente para inserção e remoção dinâmica de elementos (início ou fim),

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

Estrutura de Dados Árvores Prof. Tiago Eugenio de Melo, MSc material de referência

Estrutura de Dados Árvores Prof. Tiago Eugenio de Melo, MSc material de referência Estrutura de Dados Árvores Prof. Tiago Eugenio de Melo, MSc tiago@comunidadesol.org material de referência http://www.tiagodemelo.info/aulas 1 Roteiro Motivação Representação de árvores Definição Terminologia

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

EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES

EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES Árvores Binárias de Pesquisa (ABP) - Definição Árvore binária em que os elementos dos seus nodos têm associado uma chave, que - determina a

Leia mais

ADT - Árvores. ADT Árvores Definição

ADT - Árvores. ADT Árvores Definição ADT - Árvores Outro tipo abstrato de dados (ADT) é a árvore. Como acontece com as listas, a utilização das árvores será basicamente como estruturas de dados ao invés de tipos de dados. Ou seja, o foco

Leia mais

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES- Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra Árvores CES- Operações sobre uma árvore Estruturas para armazenar árvores Contígua Contígua melhorada Encadeada

Leia mais