Documentos de Académico
Documentos de Profesional
Documentos de Cultura
grau dos ns
012
= =
rvore qualquer rvore Binria
+
Endereo da raiz
A
* /
200
B C A
a b c +
150 350
d e D E F G B C
100 170 250 500
400 600 D E F G
rvores Binrias - vantagens Transformao: n-ria em binria
Irmo seguinte
Otimizao de alocao de memria
Mais fceis de manipular
?
Primeiro filho
Implementao de operaes muito
simplificada A A
B C D B C D
Transformar rvore n-ria em binria
E F G E F G
A A A
1. O primeiro filho de um nodo passa a ser seu
filho esquerda na rvore binria
B C D B C D B
2. Os demais filhos de um nodo passam a ser
filhos direita do seu irmo imediato esquerda
E F G E F G E C
3. Executar o mesmo processo para cada nodo da
rvore a A D
F
Filho esquerda = primeiro filho B C D
Filho direita = irmo seguinte
G
E F G
Reconstituio rvore n-ria Exerccios
A A
rvore modificada
B A
B C D E
E C B C D Converter Binria
F G H inserir Y filho direita de A
rvore original J D
E J F G L inserir X filho esquerda Y
A inserir Z filho direita Y
F
K L I J K
B C D K G
E F G L
C H
A G
D I K
B C D F H K L
E F J L
E I J M
M
TAD : Estrutura de Dados
raiz raiz
A A
B C
Implementao de rvores Binrias B C
D E
D E
Tipo
Pnodo = Nodo;
Nodo Nodo = registro
esq info dir esq : Pnodo;
info: Dados;
dir : Pnodo
fim;
Insere Endereo
B C
da raiz B C
raiz
D E
meio A D E
folha
Consulta
B C Criar uma rvore vazia
Remove
Destri proc inicializa(var a: Pnodo);
D E F G incio
a := nil
fim inicializa;
Insere raiz Insere: filho esqueda
raiz
raiz
A
A proc insereEsq(var a: Pnodo; infoPai, infoFilho: Dados);
B C var pai, novo: Pnodo;
B C incio
D E pai := localiza(a, infoPai);
D E se pai nil
ento
Alocar nodo raiz se pai.esq nil
ento erro(Nodo j possui sub-rvore esquerda)
proc insereRaiz(var a: Pnodo; info: Dados); seno incio {insere o novo nodo}
var raiz: Pnodo; aloca(novo);
incio novo.dir := novo.esq := nil;
alocar(raiz); novo.info := infoFilho;
raiz.esq := raiz.dir := nil; pai.esq := novo;
raiz.info := info; fim;
a := raiz; fim insereEsq;
fim insereRaiz;
B C D
Visita a um nodo E F G
acesso a um nodo
para realizar alguma operao
Caminhamentos Caminhamentos
a-b-d-e-c-f-g a
Sub-rvore Central esquerda
Sub-rvore .Percorre a sub-rvore esquerda
esquerda b c direita .Visita a raiz
.Percorre a sub-rvore direita b c
d-b-e-a-f-c-g
d e f g Ps-Fixado esquerda
.Percorre a sub-rvore esquerda
d e f g
.Percorre a sub-rvore direita
.Visita a raiz
d-e-b-f-g-c-a
Caminhamentos Exemplo 02
Pr-Fixado direita 130
.Visita a raiz
.Percorre a sub-rvore direita
.Percorre a sub-rvore esquerda
a 100 200
a-c-g-f-b-e-d
Central direita
.Percorre a sub-rvore direita
83 120 150 230
.Visita a raiz
.Percorre a sub-rvore esquerda
b c .Central esquerda?
a 7
1
3 6
2 5
3 4 6 7 1 2 4 5
1 3 5 7