• Nenhum resultado encontrado

Prof. Leandro C. Fernandes Árvores

N/A
N/A
Protected

Academic year: 2022

Share "Prof. Leandro C. Fernandes Árvores"

Copied!
38
0
0

Texto

(1)

Dados

Árvores

Prof. Leandro C. Fernandes

Estruturas de Dados

(2)

SCE0286 –Estruturas de Dados

Antes ...

 Em aulas anteriores estudou-se a

organização dos dados de uma maneira linear, onde a propriedade básica era a relação seqüencial mantida entre os

elementos.

 Agora, estudaremos uma outra forma de

organizar os dados chamada, a princípio

como "não-linear".

(3)

Estruturas de Dados

Introdução

 São estruturas de dados não lineares, tendo sua origem na Teoria dos Grafos, que as

define como:

 um grafo acíclico, conexo e dirigido

 Esse modo de representação permite que outros tipos de relações entre os dados possam ser representadas, tais como:

hierarquia e composição, por exemplo.

(4)

SCE0286 –Estruturas de Dados

Exemplos de árvores

(5)

Estruturas de Dados

Definição

 Uma árvore é um conjunto finito de um ou mais nós (ou vértices) tais que:

Existe um nó especial, denominado raiz

Os demais nós encontram-se desdobrados em n ≥ 0

conjuntos disjuntos T

1

, ..., T

n

sendo que cada conjunto se constitui numa árvore

T

1

, ..., T

n

são denominadas subárvores da raiz

 Note a característica inerentemente recursiva que é

dada a estrutura em definição.

(6)

SCE0286 –Estruturas de Dados

Representações

 Uma árvore é um grafo sem ciclos

A

B

E

K

F

C

G

D

H I J

L

(7)

Estruturas de Dados

Representações

 Grafo Conjuntos aninhados

A

B

E

K

F

C

G

D

H I J

L

A

B E K

F

C G

D H I

J

L

(8)

SCE0286 –Estruturas de Dados

Representações

 Grafo Parênteses aninhados

(A)

(A(B C D))

(A(B(E F) C(G) D(H I J))) ...

(A(B(E(K)F)C(G)D(H(L)I J)))

A

B

E

K

F

C

G

D

H I J

L

(9)

Estruturas de Dados

Representações

Grafo

Paragrafação

A

··B

····E

···K

····F

··C

····G

··D

····H

···L

····I

····J

A

B

E

K

F

C

G

D

H I J

L

(10)

SCE0286 –Estruturas de Dados

Nós (Vértices)

 Esta árvore possui 12 nós (ou vértices)

A

B

E

K

F

C

G

D

H I J

L

nós

(11)

Estruturas de Dados

Arestas (Arcos)

 Uma aresta (arco) liga um nó a outro

A

B

E

K

F

C

G

D

H I J

L

aresta

(12)

SCE0286 –Estruturas de Dados

Raiz

 Normalmente as árvores são desenhadas de forma invertida, com a raiz em cima

A

B

E

K

F

C

G

D

H I J

L

raiz

(13)

Estruturas de Dados

Subárvores

 No exemplo, o nó A possui três subárvores (ramos) cujas raízes são B, C e D

A

B

E

K

F

C

G

D

H I J

L

(14)

SCE0286 –Estruturas de Dados

Subárvores

 No exemplo, o nó B possui duas subárvores (ramos) cujas raízes são E e F

A

B

E

K

F

C

G

D

H I J

L

(15)

Estruturas de Dados

Folha

 Um nó sem descendentes (sem filhos ou

sem sucessores) é denominado terminal ou folha

A

B

E F

C

G

D

H I J

(16)

SCE0286 –Estruturas de Dados

Não – Folha

 Um nó com descendentes (com filhos ou com sucessores) é denominado não–

terminal ou não–folha ou interior

A

B

E

K

F

C

G

D

H I J

L

(17)

Estruturas de Dados

Floresta

 Uma floresta é um conjunto de zero ou mais árvores

 No exemplo, temos 3 árvores que compõem uma floresta

B

E F

C

G

D

H I J

(18)

SCE0286 –Estruturas de Dados

Grau de um Nó

 O número de descendentes (imediatos) de um nó é denominado grau deste nó

A

B

E

K

F

C

G

D

H I J

L

Grau

A 3

B 2

C 1

D 3

E 1

... ...

H 1

I 0

J 0

... ...

(19)

Estruturas de Dados

Grau de uma Árvore

 O grau máximo atingido pelos nós de uma árvore é denominado grau desta árvore

 No exemplo, o grau da árvore é 3

A

B

E F

C

G

D

H I J

(20)

SCE0286 –Estruturas de Dados

Árvore Completa

 Uma árvore de grau d é uma árvore completa (cheia) se:

Todos os nós tem exatamente d filhos, exceto as folhas e

Todas as folhas estão na mesma altura

 No exemplo, a árvore de grau d=3 é completa

A

B

E F G

C

H I J

D

K L M

(21)

Estruturas de Dados

Pai

 As raízes das subárvores de um nó X são os filhos de X; X é o pai dos filhos

A

B

E

K

F

C

G

D

H I J

L

Nó pai Nós filhos

A B, C, D

B E, F

C G

D H, I, J

E K

... ...

H L

I -

J -

(22)

SCE0286 –Estruturas de Dados

Irmão

 Os filhos (descendentes) de um mesmo nó pai (antecessor) são denominados irmãos

A

B

E

K

F

C

G

D

H I J

L

Irmãos

B, C, D E, F H, I, J

(23)

Estruturas de Dados

Caminho

Uma seqüência de nós distintos v

1

, v

2

, ..., v

k

tal que sempre existe a relação:

“v

i

é filho de v

i+1

” ou “v

i

é pai de v

i+1

”, 1 ≤ i < k é denominada um caminho entre v

1

e v

k

Diz-se que v

1

alcança v

k

ou que v

k

é alcançado por v

1

Um caminho de k vértices v

1

, v

2

, ..., v

k

é formado pela seqüência de k-1 pares de nós (v

1

,v

2

), (v

2

,v

3

), ..., (v

k-2

,v

k-1

), (v

k-1

,v

k

)

k-1 é o comprimento do caminho

Cada par (v

i

, v

i+1

) é uma aresta ou arco, 1 ≤ i < k

(24)

SCE0286 –Estruturas de Dados

Caminho

No Exemplo:

A, D, H, L é um caminho entre A e L, formando pela seqüência de arestas (A,D), (D,H), (H,L)

O comprimento do caminho entre A e L é 3

A

B

E

K

F

C

G

D

H I J

L

(25)

Estruturas de Dados

Ancestrais

 Os ancestrais (antepassados) de um nó são todos os nós no caminho entre a raiz e o respectivo nó

A

B

E

K

F

C

G

D

H I J

L

Ancestrais

A -

B A

C A

D A

E B, A

... ...

H D, A

... ...

K E, B, A

(26)

SCE0286 –Estruturas de Dados

Nível

 O nível (ou profundidade) de um nó é o

número de nós no caminho desde a raiz até o respectivo nó

 Em geral, admite-se a raiz como estando no nível zero

 Estando um nó no nível i, seus filhos estarão

no nível i+1

(27)

Estruturas de Dados

Nível

 No exemplo, os nós:

B, C e D estão no nível 1

K e L estão no nível 3

A

B

E F

C

G

D

H I J

0

1

2

(28)

SCE0286 –Estruturas de Dados

Altura de um Nó

 A altura de um nó é o número de nós no maior caminho desde o nó até um de seus descendentes

 Portanto, as folhas têm altura zero

(29)

Estruturas de Dados

Altura de um Nó

 No exemplo, os nós:

K, F, G, L, I, J têm altura 0

E, C e H têm altura 1

B e D têm altura 2

A tem altura 3 A

B

E F

C

G

D

H I J

(30)

SCE0286 –Estruturas de Dados

Altura de uma Árvore

 A altura (ou profundidade) de uma árvore é o nível máximo entre todos os nós da árvore ou, equivalentemente, é a altura da raiz

 No exemplo, a árvore possui altura 3

A

B

E

K

F

C

G

D

H I J

L

(31)

Estruturas de Dados

Número Máximo de Nós

 O número máximo de nós n(h,d) em uma árvore de altura h é atingido quando todos os nós possuírem d subárvores, exceto os de nível h, que não

possuem subárvores.

 Para uma árvore de grau d

Nível 0 contém d

0

(um) nó (raiz)

Nível 1 contém d

1

descendentes da raiz

Nível 2 contém d

2

descendentes

...

Nível i contém d

i

descendentes

(32)

SCE0286 –Estruturas de Dados

Número Máximo de Nós

 Assumindo d=3

 Nível 0: 1 nó (raiz) – Nível 1: 3 nós

 Nível 2: 3 2 = 9 nós – Nível 3: 3 3 = 27 nós

... 1+3+9+27 = 40 nós

(33)

Estruturas de Dados

Número Máximo de Nós

 Portanto, o número máximo de nós n=n(h,d) é soma do número de nós em cada nível, ou seja:

 

h

i

h

i d d d d

d h

n n

0

2 1

0 ...

) ,

(

 

 

 

h

i

h

i d

d d d

0

1

1 1 ,

1

(34)

SCE0286 –Estruturas de Dados

Árvores Balanceadas

 Uma árvore é balanceada se, para cada nó, a altura de suas subárvores diferem, no

máximo, de uma unidade

 Uma árvore é perfeitamente balanceada se, para cada nó, os números de nós em suas subárvores diferem, no máximo, de uma

unidade

(35)

Estruturas de Dados

Árvores Perfeitamente Balanceadas de Grau 2

n=7 n=6

n=5

n=4 n=2 n=3

n=1

(36)

SCE0286 –Estruturas de Dados

Implementação de Árvores

 Árvores podem ser implementadas utilizando listas encadeadas

 Cada nó possui um campo de informação e uma série de campos de ligação, de acordo como

número de filhos daquele nó

4  

Campo de ligação para a segunda subárvore

Campo de ligação para a primeira subárvore

Campo de ligação

para a próxima subárvore

dado

(37)

Estruturas de Dados

Implementação de Árvores

 Entretanto, é mais simples o caso em que cada nó tem um número máximo de filhos n pré-estabelecido

4   

dado

(38)

SCE0286 –Estruturas de Dados

Implementação de Árvores

Por exemplo, a árvore ternária seguinte (n=3) ...

... pode ser implementada como:

A

B

E

K

F

C

G

D

H I J

L K L

E F G H I J

B C D

A

Referências

Documentos relacionados

Código Descrição Atributo Saldo Anterior D/C Débito Crédito Saldo Final D/C. Este demonstrativo apresenta os dados consolidados da(s)

 ShellSort ou Incrementos Decrescentes: é uma extensão do algoritmo de inserção direta. – Diferencia-se por dividir o vetor usado no processo de classificação em

Se a permanência no regime simplificado implica que os sujeitos passivos, no exercício da sua actividade, não tenham ultrapassado no período de tributação

Com relação ao CEETEPS, o tema desta dissertação é interessante por se inserir no Programa de Educação de Jovens e Adultos (PROEJA), sob a tutela da Coordenação de

Foram coletados 376 espécimes distribuídos por seis famílias, sendo que a família Staphylinidae apresentou a maior abundância seguida por Histeridae, Scarabaeidae, Ptiliidae,

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

terapia ou a mediação de conflitos precisa passar, ne- cessariamente, pela identificação dessa necessidade não atendida, cuja vivência se revela como tensão e ameaça, o que

Algumas sementes e castanhas vão ficar só nessa etapa de hidratação pois já passaram por um processo térmico no caso de algumas castanhas e nozes, outras sementes descascadas