Você está na página 1de 11

1

Instituto Luterano de Ensino Superior de Ji-Paran Curso Bacharelado em Informtica Estrutura de Dados I Prof.: Jos Luiz A. Duizith

RVORE (TREE) Estrutura hierrquica (+ complexa) Conceito: Uma rvore A um conjunto finito de de n nodos talque se N > 0 ento: 1) Existe um nodo especial chamado raiz rvore. 2) Os restantes N-1 nodos esto particionados em m conjuntos disjuntos A1,A2,....,An cada um dos quais por sua vez uma rvore. Estas rvores A1,A2,....,An so chamadas de sub-rvores da raiz. Representao: a) Diagrama de Venn

E
I K J

B F
L

A C C
G M O

D
P

H
N

Estrutura de Dados I Prof. Jos Luiz Andrade Duizith

b) Por Grafos: A A1 E B F G C H
{RAIZ (ROOT) } acessa todos os nodos

A2

A3 P

rvore Genrica (filhos de m > 0) Obs.: Se cortar a Raiz A, ficaria 3 subconjuntos: A1,A2,A3. c) Paragrafao: A B E I J K F L C D G H P M N O

Mais a esquerda representam a raiz Mais a direita subconjunto

Conceitos:
Estrutura de Dados I Prof. Jos Luiz Andrade Duizith

Um nodo raiz dito ser um nodo pai das suas sub-rvores, cujos nodos por sua vez so os nodos filhos do nodo raiz. X K Y Z nodo pai nodo filho

3 filhos Grau 3 Nodo Irmo: possuem o mesmo pai Grau de 1 nodo: o n de sub-rvores que o nodo possui: se Grau = 0 ento o nodo chamado extreno terminal ou folha (nodos que no tem filho) se Grau > 0 ento o nodo chamado interno Nvel de 1 nodo : o n de linhas (arestas) que ligam o nodo ao nodo raiz. Nvel do nodo raiz = 0 no desenho acima, qual o nvel de knvel=1
quantas linhas percorre at chegar a raiz.

Altura de 1 rvore : definida pelo nvel mais alto da rvore. N de linhas Ex: altura da rvore representada por grafos : 3 Floresta : conjunto (finito) de rvores disjuntas.
Se eu tirasse a raiz A ento eu ficaria c/ 3 sub-conjuntos, ou seja a floresta seria completa por 3 rvores.

rvore Ordenada : aquela na qual a ordem das sub-rvores A1,A2,...,An importante na definio. rvore Orientada : Aquela na qual a ordem irrelevante EX:
Estrutura de Dados I Prof. Jos Luiz Andrade Duizith

A1 A X Y Z Y

A2 A Z X

Se A1 e A2 so rvores ordenadas ento A1 <> A2 Se A1 e A2 so rvores orientadas ento A1 = A2 (no importa a ordem) Caminho (path) : dado um conjunto de nodos n1,n2,...,nk, ser caminho de n1 at nk, se ni pai de ni+1 p/ i=1,2,...,k-1. Dado um n S qualquer de uma rvore existe um nico caminho da raiz at o nodo S. Ex: na representao por grafo: caminho at F A B C caminho at MA C H M incluo a raiz e o prprio elemento

Estrutura de Dados I Prof. Jos Luiz Andrade Duizith

Tipos: a) rvore genrica qualquer nodo pode ter m >= 0 filhos; b) rvore binria de Knuth qualquer nodo pode ter no mximo 2 filhos (0,1,2) c) rvore estritamente binria qualquer nodo deve ter 0 ou 2 filhos (0 ou 2) b) 2 4 5 1 3 6 7 c) 2 4 1 3 5

Ex.: Rep. Expresso aritmtica + 1 * 2 3

REPRESENTAO (alocao) DE RVORES EM MEMRIA


Estrutura de Dados I Prof. Jos Luiz Andrade Duizith

Ex.: B C D

A E F G H

nodo . . . . . A 2 B 2 C 0 D 0 E 3 F 0 G 0 H 0 . . . . . . grau (n de filhos) Como colocar? A tem 2 filhos, ento os prximos nodos so filhos de A. Um deles B, mas B tem 2 filhos, ento os prximos nodos so filhos de B, que so C e D, como eles no tem filhos, ento o prximo nodo o outro filho de A, que E.

A) Por Contiguidade: dificuldade para operaes de manipulao: - insero do nodo - remoo do nodo - localizao do nodo adequada para armazenamento fsico permanente (em disco/fita magnticas) de uma rvore representada por encadeamento.

B) Por Encadeamento (lista de lista)


Estrutura de Dados I Prof. Jos Luiz Andrade Duizith

A ^ B ^ C ^ D ^ F ^ G ^ H ^ E ^

Pascal: Type Aponta_nodo = ^Nodo; Aponta_Aponta = ^Aponta Nodo = RECORD Dado : Informao Filhos : Aponta_Aponta End; Aponta = RECORD Filho : Aponta_Nodo Prox : Aponta_Aponta End;

^
Estrutura de Dados I Prof. Jos Luiz Andrade Duizith

B C ^ ^ ^

E G ^ ^ ^ H ^ ^ ^

D ^ ^ ^ F ^ ^ ^

8 nodos x 4 campos = 32 campos (cada campo +/- 1 byte) 17 campos no utilizados (+ de 50% da estrutura est sendo desperdiado) No vale a pena trabalhar c/ esta forma em termos de estrutura Soluo: - Transformar a rvore genrica em uma rvore binria representativa. Todo nodo deve possuir um campo para a informao e tantos campos para referenciar os filhos, normalmente o grau mximo da rvore. Quanto maior o grau, maior o despedcio. rvore Binria (nodo): max. 2 filhos filho esq Pascal: Aponta_Nodo = ^Nodo Nodo = RECORD Esq : Aponta_Nodo; Dado : Informao; Dir : Aponta_Nodo; End; dado filho
dir

Transformao de rvore Genrica em rvore Binria Representativa 1) A raiz da rvore genrica ser tambm a raiz da rvore binria
Estrutura de Dados I Prof. Jos Luiz Andrade Duizith

2) Manter a ligao de cada nodo com seu filho mais esquerda, se o nodo possuir apenas um nodo este o filho a esquerda (esta ligao mostrar o filho a esquerda na rvore binria). 3) Formar uma nova ligao de cada nodo com seu irmo direita (esta ligao mostrar o filho a direita na rvore binria). 4) As ligaes restantes so desconsideradas.

Ex.: A B C D E F G H 2 PASSO 3 PASSO 4 PASSO

A B E C F D G H Filhos: 1 a esquerda e depois a direita Ex.: filhos de A: 1 esquerda (B) 2 direita (E) irmo : a direita

rvore Binria em Memria A ^


Estrutura de Dados I Prof. Jos Luiz Andrade Duizith

10

B ^ C ^ D ^ ^ F ^ G ^ 8 nodos x 3 campos = 24 campos 9 campos desperdiados Caminhamento em rvores Binrias (percorre todos os elementos) Caminhamento no ordem de processamento dos nodos de forma que H ^ E ^ Pai nodo apontado a esquerda Ex: pai de H E

seja necessrio passar 2 ou mais vezes pelo mesmo nodo. percorrer todos os nodos da rvore numa ordem prdeterminada processando cada nodo apenas uma vez. Tipos : A) Pr-ordem (pr-fixada) Visita (processa informaes) do nodo {Visita : imprime} Percorre subrvore esquerda no nodo ou pr-ordem Percorre subrvore direita do nodo ou pr-ordem B) In-Ordem (Infixada) Percorre subrvore esquerda do nodo em In-Ordem Visita (processa informaes) do nodo Percorre subrvore direita do nodo em In-Ordem C) Pos-Ordem (Ps-Fixada) Percorre subrvore esquerda do nodo em Ps-Ordem Percorre subrvore direita do nodo em Ps-Ordem
Estrutura de Dados I Prof. Jos Luiz Andrade Duizith

11

Visita (processa informao) do nodo Ex.: 1) B A C


A raiz fica intercalada se do lado esquerdo existir tantos elementos quanto a direita.

Pr-Ordem : In-Ordem : Pos-Ordem :

A B B

B A C

C C A

Comeando pela raiz : Pr-Ordem Visita (imprime o conteudo), percorre a esquerda, ento encontra o nodo B, ele diferente de A, ento tenho que comear novamente, ou seja, visita o nodo B, percorre a esquerda (no possui nada) ento percorre a direita (no possui nada tambm), assim termina no nodo B. Ento volta ao nodo A e percorre a direita. Encontro o nodo C. Devo visit-lo, percorrer a esquerda (nada) e a direita (nada). Assim termina a PrOrdem.

2) A B C D F G E Pr In Pos :A B C D E F G :C B D A F G E :C D B G F E A

Estrutura de Dados I Prof. Jos Luiz Andrade Duizith

Você também pode gostar