ÁRVORES

26
ÁRVORES Data object muito importante •Estrutura organizada que representa relacionamento hierárquico •Exemplos: ascendentes e descendentes •Relacionamento em dois ramos ou multi-ramos

description

ÁRVORES. Data object muito importante Estrutura organizada que representa relacionamento hierárquico Exemplos: ascendentes e descendentes Relacionamento em dois ramos ou multi-ramos. ÁRVORES (cont.). Definição: É um conjunto finito de um ou mais nós tal que: - PowerPoint PPT Presentation

Transcript of ÁRVORES

Page 1: ÁRVORES

ÁRVORES

•Data object muito importante

•Estrutura organizada que representa relacionamento hierárquico

•Exemplos: ascendentes e descendentes

•Relacionamento em dois ramos ou multi-ramos

Page 2: ÁRVORES

Definição: É um conjunto finito de um ou mais nós tal que:

(a) existe um nó especial chamado de raiz (b) os nós restantes são particionados em

n0 conjuntos disjuntos T1, ..., Tn onde cada um destes conjuntos são

árvores. T1, ..., Tn são chamados de sub-árvores

ÁRVORES (cont.)

Page 3: ÁRVORES

D

HB BR

BRU TER COY NUG

ÁRVORES (cont.)

Duas sub-árvores com raízes HB e BR

A condição de conjuntos disjuntos de T1, ..., Tn

não permite a conexão entre sub-árvores

Page 4: ÁRVORES

ÁRVORES (cont.)L

L1 L2 L3 L4

L5 L6 L7 L8 L9 L10 L11 L12

Quatro sub-árvores com raízes L1, L2, L3 e L4Cada item é raiz de alguma sub-árvore. Porexemplo, L12 é uma raiz sem sub-árvores

Page 5: ÁRVORES

ÁRVORES (cont.)

Nó = informação + ligações a outros ítens

L

L1 L2 L3 L4

L5 L6 L7 L8 L9 L10 L11 L12

13 nós

Page 6: ÁRVORES

Grau = número de sub-árvores de um nó

ÁRVORES (cont.)

L

L1 L2 L3 L4

L5 L6 L7 L8 L9 L10 L11 L12

L4 tem grau 3

Page 7: ÁRVORES

Folha = nó com grau 0

ÁRVORES (cont.)

L

L1 L2 L3 L4

L5 L6 L7 L8 L9 L10 L11 L12

L5 a L12 (também nós terminais)

Page 8: ÁRVORES

A

B C D

E F G H I J

K L M

1

2

3

4

Grau de uma árvore = grau máximo dos nós da árvore 3

ÁRVORES (cont.)

Page 9: ÁRVORES

ÁRVORES (cont.)A

B C D

E F G H I J

K L M

1

2

3

4

Ancestrais de um nó = todos os nós no caminho raiz-nó os ancestrais de M são A, D e H

Page 10: ÁRVORES

ÁRVORES (cont.)A

B C D

E F G H I J

K L M

1

2

3

4

Nível = raiz sempre no nível 1. Nó no nível l, filhas no nível l+1

Page 11: ÁRVORES

ÁRVORES (cont.)A

B C D

E F G H I J

K L M

1

2

3

4

Profundidade = nível máximo de qualquer nó na árvore 4

Page 12: ÁRVORES

ÁRVORES (cont.)A

B C D

E F G H I J

K L M

1

2

3

4

Floresta = n0 árvores disjuntas

se eliminar o nó A

Page 13: ÁRVORES

ÁRVORES BINÁRIAS•É uma estrutura muito importante

•Qualquer nó pode ter no MÁXIMO dois ramos (grau 2)

•Distinção entre sub-árvore à esquerda e sub-árvore à direita

•Pode ter 0 (zero) nós

•É um objeto bem diferente do objeto árvore

Page 14: ÁRVORES

Definição: Uma árvore binária é um conjunto finito de nós que ou é vazia ou consiste de uma raiz e duas árvores binárias

disjuntas chamadas de sub-árvore esquerda e sub-árvore direita

ÁRVORES BINÁRIAS (cont.)

Número máximo de nós num nível l = 2l-1, para l 1Número máximo de nós com profundidade k = 2k - 1

OBSOBS: às vezes alguns consideram nível de raiz como 0 (zero)

Page 15: ÁRVORES

ÁRVORES BINÁRIAS (cont.)Processamento sistemático e ordenado de cada nó daárvore apenas uma vez para obter uma seqüêncialinear dos nós.

A seqüência consiste de: antecessor e sucessor

Existem três maneiras de percorrer uma árvore binária•Pre-Order (pré-ordem)•In-Order (ordem simétrica)•Post-Order (ordem final)

Page 16: ÁRVORES

D

HB BR

BRU TER COY NUG

ÁRVORES BINÁRIAS (cont.)

Pre-Order:

•Visita a raiz

•Percorre a sub-árvore à esquerda

•Percorre a sub-árvore à direita

D - HB - BRU - TER - BR - COY - NUG

Page 17: ÁRVORES

Pre-Order ( T )

// T é uma árvore binária com três campos:// Lchild, Data, Rchild{

if T 0{

print Data (T)Pre-Order ( Lchild (T) )Pre-Order ( Rchild (T) )

}}

ÁRVORES BINÁRIAS (cont.)

Page 18: ÁRVORES

In-Order:

•Percorre a sub-árvore à esquerda

•Visita a raiz

•Percorre a sub-árvore à direita

BRU - HB - TER - D - COY - BR - NUG

ÁRVORES BINÁRIAS (cont.)D

HB BR

BRU TER COY NUG

Page 19: ÁRVORES

In-Order ( T )

// T é uma árvore binária com três campos:// Lchild, Data, Rchild{

if T 0{

In-Order ( Lchild (T) )print Data (T)In-Order ( Rchild (T) )

}}

ÁRVORES BINÁRIAS (cont.)

Page 20: ÁRVORES

Post-Order:

•Percorre a sub-árvore à esquerda

•Percorre a sub-árvore à direita

•Visita a raiz

BRU - TER - HB - COY - NUG - BR - D

D

HB BR

BRU TER COY NUG

ÁRVORES BINÁRIAS (cont.)

Page 21: ÁRVORES

Post-Order ( T )

// T é uma árvore binária com três campos:// Lchild, Data, Rchild{

if T 0{

Post-Order ( Lchild (T) )Post-Order ( Rchild (T) )print Data (T)

}}

ÁRVORES BINÁRIAS (cont.)

Page 22: ÁRVORES

Numa árvore binária com n nós, tem-se n+1 linkspara NULO

Seria interessante aproveitar esses links

Perlis/Thornton - alteração da representação original COSTURACOSTURA

•LinkEsq - endereço do nó antecessor

•LinkDir - endereço do nó sucessor

OBS: DEPENDE DA SEQÜÊNCIA LINEAR A SER UTILIZADA

ÁRVORES BINÁRIAS (cont.)

Page 23: ÁRVORES

Determinar se o Link é VERDADEIRO ou édevido a COSTURA

Informação correspondente tem que ser embutida

ÁRVORES BINÁRIAS (cont.)

Page 24: ÁRVORES

ÁRVORES BINÁRIAS (cont.)Se LinkEsq NULO, marcar VERDADEIROSe LinkDir NULO, marcar VERDADEIROSe LinkEsq == NULO{

marcar FALSOaponta para antecessor

}Se LinkDir == NULO{

marcar FALSOaponta para sucessor

}

Page 25: ÁRVORES

ÁRVORES BINÁRIAS (cont.)

A

B C

D E F G

1 1

1 1 11

0 0 0 0 0 0 0 0

In-Order: D - B - E - A - F - C - G

Page 26: ÁRVORES

Tratamento especial para

PRIMEIRO NÓ SEGUNDO NÓ

ÁRVORES BINÁRIAS (cont.)

Sem antecessor Sem sucessor

APONTA PRA RAIZ OU NÓ CABEÇA