Vous êtes sur la page 1sur 16

Monitoria de Algoritmos

rvore binria
Aula prtica 1

Pra que rvores binrias?


Uma lista dinmica, apesar de seus
benefcios de memria ilimitada tem
um problema:
Acesso Sequencial (ou Linear) [O(n)].
Para contornar esse problema foram
criadas as rvores

O que so rvores binrias?


As rvores binrias so estruturas de dados encadeadas (assim
como uma lista) onde cada elemento subdivide a rvore.
Termos:
N: Elemento que contm a informao
a ser guardada e os ponteiros.
Raiz: Primeiro elemento da rvore. [Ex:
A]
Pai: N que tem um Filho. [Ex: B pai de
D]
Filho: N posterior algum outro n.
[Ex. D filho de B]
Folhas: Ns sem filhos. [G, H e I]

Obs: Posto (ou altura) = Altura relativa entre


o pai e n estudado.
[Ex. E tem altura 2]

O que so rvores binrias?


Mas s isso? No!!
As rvores apresentam uma propriedade especfica:
1) O filho esquerda de qualquer n X, tem valor maior que X.
2) O filho direita de qualquer n X, tem valor menor que X
OBS: Vlido para caracteres (consultar tabela ASCII)

E como manipul-las?
A palavra-chave : Recurso.
E porque recurso?
A recurso usa um mtodo que ser estudado mais a frente no curso,
chamado dividir para conquistar, basicamente dividindo o problema em
subproblemas menores.
OBS: H como fazer de
modo iterativo.

Falando em complexidade
Veremos a partir de agora alguns algoritmos usados em rvores binrias.
Insero
Remoo
Encaminhamento
a) In Ordem
b) Pr Ordem
c) Ps Ordem
Complexidade: O(log n) ou O(h)*
Obs: O(h) caso a rvore esteja
degenerada (Veremos frente)

Insero
A insero feita somente nas folhas.
O algoritmo deve chegar a folha onde deve ser adicionada (lembrando de
respeitar a propriedade da rvore binria).
Elementos que j pertencem
a rvore, no devem ser
adicionados novamente.

Encaminhamento
a) In Ordem:
N Esquerdo Raiz N
Direito
b) Pr Ordem:
Raiz N Esquerdo N
Direito

c) Ps Ordem:
N Esquerdo Raiz N
Direito
Obs: Lembrem se de pensar
recursivamente e como cada
algoritmo executado a cada iterao
desse tipo de recurso.

Remoo
Uma remoo em rvores Binrias um pouco mais complexo do que a insero
e o encaminhamento.
Essa complexidade se d pelo fato que pode-se remover ns em qualquer
posio da rvore, mas a deve-se manter ao mximo a propriedade de rvores
binrias.
Uma rvore binria que perde sua propriedade (ou seja, vira uma lista
encadeada) chamada degenerada.
Para contornar esse problema, foi implementada a rvore do Tipo AVL, mas esse
assunto vir na prxima aula.
Em uma remoo, considera-se 3 tipos:
a) N no tem filhos. (Folha)
b) N tem somente um filho.
c) N tem 2 filhos.

Remoo
a) N sem filhos (Folha): Quando no h filhos, desaloca-se o n em questo e o
ponteiro do pai (que aponta para o filho a ser removido), deve tornar-se NULL.

Remoo
b) N com 1 filho: O pai desalocado e o filho se torna o novo pai.

Remoo
c) N com 2 filhos: Para a remoo de um n com 2 filhos preciso conhecer um
conceito bsico, o sucessor.
O sucessor de um elemento cujo n tem um filho direita o elemento que est
um passo direita e tantos passos esquerda quanto for necessrio.
A regra anloga esquerda.

Obs: Caso o n contenha os dois filhos na hora da remoo, ao fazer o pai


desse n apontar p/ o sucessor, esse sucessor deve apontar para o outro n,
lembrando de fazer as desalocaes e os ponteiros apontarem para NULL.

Remoo

Remoo

Remoo

Vous aimerez peut-être aussi