Você está na página 1de 58

r v o r es

r v o r es

Roteiro

Terminologia Bsica
Representao em Memria
rvores Binrias
Representao de rvores Binrias
Caminhamento em rvores Binrias
rvores Binrias de Pesquisa

rvores

Terminologia Bsica
Conceito: As rvores so estruturas de dados
capazes de representar o relacionamento
hierrquico entre diversas informaes.
Exemplos
rvore

genealgica de uma famlia


Organograma de uma empresa
rvore estrutural de um povo

rvores
Proto-indo-europeu

Helnico

Itlico

Grego
Osco-umbriano

Latino

Germnico

Norte
Germnico

Oscano Umbriano
Francs

Romeno

Oeste
Germnico

rvore

Terminologia Bsica
Definio: Uma rvore um conjunto finito de um
ou mais ns de tal natureza que:
Existe

um n especialmente designado
denominado raiz;

Os

ns restantes esto desdobrados em N


conjuntos separados (N >= 0) T1, T2, ... , TN, em
que cada um dos conjuntos se constitui uma
rvore (denominadas de sub-rvores da raiz).

rvores
Sub-rvore
Sub-rvore

Raiz
Raiz

rvores

Terminologia Bsica
A definio de rvore recursiva.
A exigncia que T1, T2, ... , TN sejam disjuntos
probe que as subrvores jamais sejam
interligadas. Resultado: cada item numa rvore a
raiz de alguma sub-rvore total.

rvores

Terminologia Bsica
Cada n representa o fator da informao e mais
os ramos que os ligam a outros ns (ns-filhos)
Ramo

rvore

Terminologia Bsica
Grau de um n o nmero de subrvores desse
n.
Grau 3
Grau 2

Grau 1

rvore

Terminologia Bsica
Os ns cujo grau igual a ZERO so denominados
de ns-folhas ou n terminal.
Os ns intermedirios so, por conseqncia,
denominados de ns no-folhas ou ns noterminais.

rvores

Grau 0

Grau 0

rvore

Terminologia Bsica
Grau da rvore o maior grau de seus ns
constituintes
Grau da
rvore: 3

rvore

Terminologia Bsica
Nomenclaturas adicionais
ns

n pai de...

ns

filhos de...

irmos de...

ns ancestrais de...

rvores
A
B

rvore

Terminologia Bsica
Irmos
B,

CeD

E e F; G, H e I; J filho nico no tem irmos

K e L; M e N; P e Q

rvore

Terminologia Bsica
Filhos

de A so B, C e D

de B so E e F

de C so G, H e I

de D J (J filho nico)

rvore

Terminologia Bsica
Ancestrais

de B apenas A

de G so C e A

de K so F, B e A

de P so J, D e A

rvore

Terminologia Bsica
Descendentes

de A so todos os ns da rvore (A a raiz)

de B so E, F, K e L

de C so G, H, I, M, N e O

de D so J, P e Q

rvore

Terminologia Bsica
Nvel de um n definido por:

A raiz da rvore est no nvel 1 (um)

Estando

um n no nvel k, os seus filhos estaro


no nvel (k + 1).

Observao: Existem literaturas que consideram a


raiz nvel 0 (zero).

rvores
A

Nvel 1

Nvel 4

Nvel 2

Nvel 3

rvore

Terminologia Bsica
Altura ou Profundidade de uma rvore o maior
nvel atingido por qualquer n da rvore.
A

rvore anterior tem altura igual a 4

rvore

Representao em Memria
Como representar, em memria, uma rvore ?

Podemos utilizar o mesmo conceito que


utilizamos em listas ligadas e, por meio de
ponteiros, representar o relacionamento
existente um n e seus ns-filhos.

rvore

Representao em Memria
Informaes

P1

P2

P3

...

PN

Ponteiros
Ponteirospara
paracada
cadauma
umadas
das
subvores
subvoresdesse
dessen
n

rvore

Representao em Pascal

Type
Apontador = ^Registro;
Registro = Record
info : TIPO_INFO;
P1,
P2,
...,
Pn : Apontador
End;

rvore

rvores Binrias
Definio: um conjunto finito de ns, que se
apresenta vazia ou que consiste de uma raiz e de,
no mximo, duas rvores binrias separadas,
denominadas de subrvore esquerda e subrvore
direita.

rvores

rvore

Representao de rvores Binrias


esquerda

Ponteiro
Ponteiro
para
paraaa
subrvore
subrvore
esquerda
esquerda

Informaes

direita

Ponteiro
Ponteiropara
para
aasubrvore
subrvore
da
dadireita
direita

rvore

Representao de rvores Binrias

Type
Apontador = ^Registro;
Registro = Record
info : TIPO_INFO;
Esquerda,
Direita : Apontador
End;

rvores
12
06

08

26

18

22

32

01

14

40

rvores

Duas
rvores Binrias Distintas

12

12

18

18
22

22

rvore

Caminhamento em rvores Binrias


Definio: A operao de caminhamento o fato
de realizar a travessia da rvore de forma que:
Todos

Cada

os ns da rvore sejam visitados;

n apenas seja visitado uma nica vez;

rvore

Caminhamento em rvores Binrias


A mais importante caracterstica para um
caminhamento o momento em que ocorre a visita
informao presente no n;
A visita pode ser realizada em trs momentos
diferentes;

rvore

Caminhamento em rvores Binrias


Caminhamentos

Pr-Ordem (Pr-fixado)

Em-Ordem

(Central ou Infixado)

Ps Ordem (Ps-fixado)

rvore

Caminhamento em rvores Binrias


Caminhamento Pr-Ordem (Pr-Fixado)
Realizar

a visita

Caminhar

na sub-rvore da esquerda

Caminhar na sub-rvore da direita

rvores
Procedure Pre_Ordem (raiz : apontador);
begin
if (raiz <> nil) then
begin
Visita (raiz);
Pre_Ordem (raiz ^. esquerda);
Pre_Ordem (raiz ^. direita);
end;
end;

rvores
12
06

08

26

18

22

32

01

14

40

Pr-Ordem: 12, 08, 26, 18, 22, 01, 06, 32, 14, 40

rvores

Caminhamento em rvores Binrias


Caminhamento Em-Ordem (Central)
Caminhar

Realizar

na sub-rvore da esquerda

a visita

Caminhar na sub-rvore da direita

rvores
Procedure Em_Ordem (raiz : apontador);
begin
if (raiz <> nil) then
begin
Em_Ordem (raiz ^. esquerda);
Visita (raiz);
Em_Ordem (raiz ^. direita);
end;
end;

rvores
12
06

08

26

18

22

32

01

14

40

Em-Ordem: 26, 08, 22, 18, 01, 12, 06, 14, 32, 40

rvores

Caminhamento em rvores Binrias


Caminhamento Ps-Ordem (Ps-fixado)
Caminhar

na sub-rvore da esquerda

Caminhar

na sub-rvore da direita

Realizar

a visita

rvores
Procedure Pos_Ordem (raiz : apontador);
begin
if (raiz <> nil) then
begin
Pos_Ordem (raiz ^. esquerda);
Pos_Ordem (raiz ^. direita);
Visita (raiz);
end;
end;

rvores
12
06

08

26

18

22

32

01

14

40

Ps-Ordem: 26, 22, 01, 18, 08, 14, 40, 32, 06, 12

rvores

rvores Binrias de Pesquisa - ABP


Conceito: Uma rvore binria de pesquisa (ABP)
uma rvore binria em que:
Todos

os ns possuem um atributo
determinante, ou seja, uma informao que
identifica de maneira nica aquele n em
relao aos demais. A esse atributo
denominamos de chave do n

rvores

rvores Binrias de Pesquisa - ABP

A operao de insero de um novo n


obedece s seguintes regras:
Se a rvore atual est vazia, o novo n se
torna a raiz dessa rvore;

rvores

rvores Binrias de Pesquisa - ABP


Se o valor da chave do novo n for menor
que o valor da chave presente na raiz da
rvore atual, o novo n inserido na subrvore da esquerda;
Se o valor da chave do novo n for maior
que o valor da chave presente na raiz da
rvore atual, o novo n inserido na subrvore da direita;

rvores

rvores Binrias de Pesquisa ABP


Conseqncias:
Todos

os ns que esto na sub-rvore da


esquerda tem valores de chave menores que o
valor da chave presente na raiz dessa rvore;

Todos os ns que esto na sub-rvore da


direita tem valores de chave maiores que o valor
da chave presente na raiz dessa rvore;

rvores

rvores Binrias de Pesquisa ABP


Conseqncias:

Ao realizarmos caminhamento em ordem


obtemos, na sada, os ns em ordem crescente
de acordo com o valor da chave;

rvores
Procedure InsereNo(Var Raiz : Apontador; NovoNo :
Apontador);
Begin
if (Raiz = nil)
Then
Raiz := NovoNo
Else if (NovoNo ^. Valor < Raiz ^. Valor)
Then
InsereNo (Raiz ^. Esquerda, NovoNo)
Else
InsereNo (Raiz ^. Direita, NovoNo)
End;

rvores

Insero dos valores: 12, 8, 26, 22, 1, 6, 18, 32, 40

12

rvores

Insero dos valores: 12, 8, 26, 22, 1, 6, 18, 32, 40

12

rvores

Insero dos valores: 12, 8, 26, 22, 1, 6, 18, 32, 40

12

26

rvores

Insero dos valores: 12, 8, 26, 22, 1, 6, 18, 32, 40

12

26

22

rvores

Insero dos valores: 12, 8, 26, 22, 1, 6, 18, 32, 40

12

26

22

rvores

Insero dos valores: 12, 8, 26, 22, 1, 6, 18, 32, 40

12

26

22

rvores

Insero dos valores: 12, 8, 26, 22, 1, 6, 18, 32, 40

12

26

22

18

rvores

Insero dos valores: 12, 8, 26, 22, 1, 6, 18, 32, 40

12

26

22

18

32

rvores

Insero dos valores: 12, 8, 26, 22, 1, 6, 18, 32, 40

12

26

22

18

32

40

Você também pode gostar