Академический Документы
Профессиональный Документы
Культура Документы
108561 - ALGORITMOS E
ESTRUTURAS DE DADOS
Prof. Valrio Aymor Martins
Aula 25/26 Arvores
Extrado das aulas de David Menotti DECOM/UFOP
Algoritmos e Estruturas de Dados
Prof. Valrio Aymor Martins
2014/2
rvores
So estruturas de dados adequadas para a
representao de hierarquias.
Uma rvore composta por um conjunto de ns.
Existe um n r, denominado raiz, que contm zero
ou mais subrvores, cujas razes so ligadas
diretamente a r.
A raiz se liga a um ou mais elementos, e cada um
desses elementos forma uma nova rvore. Esses
elementos so seus filhos.
2014/2
17/11/2014
rvores de Pesquisa
A rvore de pesquisa uma estrutura de dados
muito eficiente para armazenar informao.
Ela particularmente adequada quando existe
necessidade de considerar todos ou alguma
combinao de:
1. Acesso direto e seqencial eficientes.
2. Facilidade de insero e retirada de registros.
3. Boa taxa de utilizao de memria.
4. Utilizao de memria primria e secundria.
Algoritmos e Estruturas de Dados
Prof. Valrio Aymor Martins
2014/2
rvores: Conceitos
GRAU: nmero de subrvores em um n.
FOLHA: um n que possui grau zero, isto , no
possui subrvores.
FILHOS: so as razes das subrvores de um n.
N NO TERMINAL: um n que no uma folha e
diferente da raiz.
2014/2
17/11/2014
2014/2
rvores Binrias
uma rvore que pode ser nula e que tem as
seguintes caractersticas:
Existe um n especial chamado raiz
Nenhum n tem grau superior a 2, isto , todo n tem no
mximo 2 filhos
Existe um senso de posio, ou seja, distingue-se entre
uma subrvore esquerda e subrvore direita.
2014/2
17/11/2014
O nvel do n raiz 0.
Se um n est no nvel i ento a raiz de suas subrvores esto
no nvel i + 1.
A altura de um n o comprimento do caminho mais longo
deste n at um n folha.
A altura de uma rvore a altura do n raiz.
2014/2
17/11/2014
2014/2
Como inserir?
Pesquise at achar o elemento que no tem filhos
Inserir o registro
2014/2
10
17/11/2014
2014/2
11
2014/2
12
17/11/2014
2014/2
13
2014/2
14
17/11/2014
Exemplo de Retirada de N
2014/2
15
Exemplo de Retirada de N
2014/2
16
17/11/2014
Exemplo de Retirada de N
2014/2
17
Exemplo de Retirada de N
2014/2
18
17/11/2014
Percorrendo a rvore
Percorrer a rvore:
2014/2
19
Caminhamento Central
Aps construda a rvore, pode ser necessrio percorrer
todo os registros que compem a tabela ou arquivo.
Existe mais de uma ordem de caminhamento em
rvores, mas a mais til a chamada ordem de
caminhamento central.
O caminhamento central mais bem expresso em
termos recursivos:
1. caminha na subrvore esquerda na ordem central;
2. visita a raiz;
3. caminha na subrvore direita na ordem central.
20
10
17/11/2014
Caminhamento Central
n O procedimento Central mostrado abaixo:
def Central(no):
if (no = Null) return
Central(no[0])
print(no[1])
Central(no[2])
return
2014/2
21
Complexidade Computacional
n O nmero de comparaes em uma pesquisa com
sucesso:
2014/2
22
11
17/11/2014
Complexidade Computacional
1. Para obter o pior caso basta que as chaves sejam
inseridas em ordem crescente ou decrescente.
Neste caso a rvore resultante uma lista linear,
cujo nmero mdio de comparaes (n + 1)/2.
2. Para uma rvore de pesquisa aleatoria o nmero
esperado de comparaes para recuperar um
registro qualquer cerca de 1,39 log n, apenas 39%
pior que a rvore completamente balanceada.
Algoritmos e Estruturas de Dados
Prof. Valrio Aymor Martins
2014/2
23
4
44
2
3
17
78
1
32
1
88
50
1
48
62
24
12
17/11/2014
40
25
35
50
2014/2
25
2014/2
26
13
17/11/2014
2014/2
27
2014/2
28
14
17/11/2014
29
2014/2
30
15
17/11/2014
AVL
Primeiro caso: (rotao simples para a direita)
FB > 1 (subrvore esquerda maior que subrvore
direita)
E a subrvore esquerda desta subrvore esquerda
maior que a subrvore direita dela
Ento realizar uma rotao simples para a direita.
3
2
1
Algoritmos e Estruturas de Dados
Prof. Valrio Aymor Martins
2014/2
31
2014/2
32
16
17/11/2014
2014/2
33
2
2
1
2014/2
34
17
17/11/2014
2014/2
35
3
2
2
2
2014/2
36
18
17/11/2014
2014/2
37
1
2
3
2
1
2014/2
38
19
17/11/2014
62
44
17
50
48
2014/2
c=x
78
54
44
b=y
62
88
17
78
50
48
88
54
39
40
20