Escolar Documentos
Profissional Documentos
Cultura Documentos
grau dos ns
012
rvores Binrias
=
rvore qualquer
rvore Binria
Estritamente
Binria
Binria
Completa
Binria
Cheia
0 ou 2 filhos
Sub-rvores vazias
no ltimo ou
penltimo nvel
Sub-rvores vazias
somente no ltimo nvel
ZigueZigue-zague
Ns interiores possuem exatamente
uma sub-rvore vazia
rvore Binria
estritamente binria
completa
cheia
zigue-zague
tempo de execuo
zigue-zague
*
cheia
Implementao
+
Endereo da raiz
A
*
200
a
150
350
d
100
170 250
500
400
600
Primeiro filho
A
B
D
G
A
C
C
D
A
B
F
G
B
C
rvore original
A
Converter Binria
inserir Y filho direita de A
inserir X filho esquerda Y
inserir Z filho direita Y
K
B
rvore modificada
B
E
Exerccios
G
L
H
D
E
E
L
F
M
M
raiz
C
D
Tipo
Pnodo = Nodo;
Nodo = registro
esq : Pnodo;
info: Dados;
dir : Pnodo
fim;
Nodo
esq
TAD : Operaes
info
dir
Inicializa
raiz
raiz
Inicializa
Insere
raiz
meio
folha
Consulta
Remove
Destri
D
C
D
C
D
Endereo
da raiz
Insere raiz
raiz
A
B
C
D
C
D
Consulta Nodos
raiz
A
B
Visita a um nodo
D
G
acesso a um nodo
para realizar alguma operao
Caminhamentos
Caminhamentos
A
realizar as
operaes
A
B
E
C
F
Ex: Caminhamento 1:
D
G
A-B-C-D-E-F-G
Caminhamento 2:
A-B-E-C-D-F-G
B
E
C
F
D
G
Principais Caminhamentos
Caminhamentos
Pr-Fixado esquerda
raiz
.Visita a raiz
.Percorre a sub-rvore esquerda
.Percorre a sub-rvore direita
a-b-d-e-c-f-g
Sub-rvore
esquerda
Central esquerda
Sub-rvore
direita
d-b-e-a-f-c-g
d
e f
Ps-Fixado esquerda
e f
d-e-b-f-g-c-a
Caminhamentos
Exemplo 02
130
Pr-Fixado direita
.Visita a raiz
.Percorre a sub-rvore direita
.Percorre a sub-rvore esquerda
a-c-g-f-b-e-d
100
200
Central direita
.Percorre a sub-rvore direita
.Visita a raiz
.Percorre a sub-rvore esquerda
.Central esquerda?
g-c-f-a-e-b-d
Ps-Fixado direita
.Percorre a sub-rvore direita
.Percorre a sub-rvore esquerda
.Visita a raiz
g-f-c-e-d-b-a
83
120
150
230
.Central direita?
*
Central E A
.esquerda
.raiz
.direita
Pr-fixado E
.raiz
.esquerda
.direita
A
+
*
D
raiz
/
B
qq = nil
/
A
D
B
Ps-Fixado E
.esquerda
.direita
.raiz
*
q
3
1- 2 - 3 - 4 - 5 ...
Recursividade em rvores
a
6
7
nil
nil
nil
nil
3
4
2
5
1
raiz
a
raiz
b
sub-rvore
esquerda
d
sub-rvore
direita
sub-rvore
direita
g
sub-rvore
esquerda
rvores
Pr-Fixado Esquerda
Ps-Fixado a Esquerda
proc posFixado(a: pNodo);
{percurso pos-fixado esquerdo, usando recursividade}
incio
se a <> nil
{existe a rvore ou sub-rvore}
ento incio
posFixado(a.esq); {percurso da sub-rvore esquerda}
posFixado(a.dir) {percurso da sub-rvore direita}
visita(a);
{executa operao}
fim
fim posFixado;
a
7
a
1
2
Central Esquerda
fim central;
a
4
2
1
6
3