Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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
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 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:
Estando
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
Representao em Memria
Como representar, em memria, uma rvore ?
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
Ponteiro
Ponteiro
para
paraaa
subrvore
subrvore
esquerda
esquerda
Informaes
direita
Ponteiro
Ponteiropara
para
aasubrvore
subrvore
da
dadireita
direita
rvore
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
Cada
rvore
rvore
Pr-Ordem (Pr-fixado)
Em-Ordem
(Central ou Infixado)
Ps Ordem (Ps-fixado)
rvore
a visita
Caminhar
na sub-rvore da esquerda
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
Realizar
na sub-rvore da esquerda
a visita
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
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
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
rvores
rvores
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
12
rvores
12
rvores
12
26
rvores
12
26
22
rvores
12
26
22
rvores
12
26
22
rvores
12
26
22
18
rvores
12
26
22
18
32
rvores
12
26
22
18
32
40