Professional Documents
Culture Documents
rvores
Fernando Silva
DCC-FCUP
Estruturas de Dados
8. rvores
Estruturas de Dados
1/1
As pilhas e las so outros exemplos. Existem outros tipos de estruturas? Um grafo uma estrutura de dados no-linear, pois os seus elementos, designados por ns, podem ter mais de um predecessor ou mais de um sucessor.
8. rvores
Estruturas de Dados
2/1
8. rvores
Estruturas de Dados
3/1
rvores - denio
Uma rvore um grafo constitudo por um conjunto de ns e um conjunto de arcos que ligam pares de ns, em que:
cada arco liga um n-pai a um ou mais ns-lho; todos os ns, com excepo da raz, tm um n-pai.
Denio recursiva:
Uma rvore T de aridade n constituda por um conjunto nito de ns, tal que:
ou o conjunto vazio, T = ; ou consiste de uma raz r e de n 0 sub-rvores distintas, T = {r , T0 , T1 , . . . , Tn1 }.
as sub-rvores Ti so rvores cujos ns raz ri so ns-lho de r .
8. rvores
Estruturas de Dados
4/1
rvores - conceitos/terminologia
ao predecessor (nico) de um n, chama-se n-pai os seus sucessores so os ns-lho o grau de um n o nmero sub-rvores (ou ns-lho) que descendem desse n. um n-folha no tem lhos, tem grau 0. um n-raiz no tem pai os arcos que ligam os ns, chamam-se ramos
Fernando Silva (DCC-FCUP) 8. rvores Estruturas de Dados 5/1
rvores - terminologia
chama-se caminho a uma sequncia de ramos entre dois ns
Uma propriedade importante de uma rvore que existe um e apenas um caminho entre dois quaisquer ns de uma rvore.
o comprimento de um caminho o nmero de ramos nele contido a profundidade de um n n o comprimento do caminho de n at raz; a profundidade da raz zero. a altura de um n o comprimento do caminho desde esse n at ao seu n-folha mais profundo (a altura de um n folha zero). a altura de uma rvore a altura da raz (i.e. o comprimento do maior caminho de um n-folha at raz).
8. rvores
Estruturas de Dados
6/1
possui um n especial, a raiz da rvore. cada n possui no mximo dois lhos, lho-esquerdo e lho-direito. cada n, excepto a raz, possui exactamente um n-pai.
ou dito de forma mais simples, rvores binrias so rvores em que cada n tem 0, 1 ou 2 lhos.
8. rvores
Estruturas de Dados
7/1
8. rvores
Estruturas de Dados
8/1
d j=0
2j
8. rvores
Estruturas de Dados
9/1
Portanto, apesar de uma rvore binria poder conter muitos ns, a distncia da raiz a qualquer folha relativamente pequena. Isto excelente pois signica que os algoritmos sobre rvores (inserir, remover, procurar), requerem apenas percorrer um caminho cuja profundidade logartmica no nmero de ns da rvore determinando a complexidade do algoritmo.
8. rvores
Estruturas de Dados
10 / 1
8. rvores
Estruturas de Dados
11 / 1
8. rvores
Estruturas de Dados
12 / 1
Com a denio da classe BTNode podemos organizar todas os mtodos sobre rvores.
Fernando Silva (DCC-FCUP) 8. rvores Estruturas de Dados 13 / 1
8. rvores
Estruturas de Dados
14 / 1
8. rvores
Estruturas de Dados
15 / 1
8. rvores
Estruturas de Dados
16 / 1
8. rvores
Estruturas de Dados
17 / 1
8. rvores
Estruturas de Dados
18 / 1
8. rvores
Estruturas de Dados
19 / 1
8. rvores
Estruturas de Dados
20 / 1
8. rvores
Estruturas de Dados
21 / 1
8. rvores
Estruturas de Dados
22 / 1
8. rvores
Estruturas de Dados
24 / 1
8. rvores
Estruturas de Dados
25 / 1
rvore vazia, pelo que a rvore t no contm x n corrente contm x continuar a procura numa das sub-rvores, de acordo com a relao de ordem entre x e o valor no n corrente.
8. rvores
Estruturas de Dados
26 / 1
8. rvores
Estruturas de Dados
27 / 1
8. rvores
Estruturas de Dados
28 / 1
localizar o n com o valor x, seja nx esse n; se nx um n-folha, simplesmente remove-se o n; se nx um n-interior, necessrio mais cuidado para no carmos com 2 rvores desconexas:
se nx s tiver um lho, a sub-rvore pendurada nesse n toma o lugar de nx se nx tiver dois lhos, ento devemos procurar o n com menor valor entre os descendentes do lho-direito (ou o maior dos descendentes do lho-esquerdo) para tomar o lugar de nx.
8. rvores
Estruturas de Dados
29 / 1
8. rvores
Estruturas de Dados
30 / 1
8. rvores
Estruturas de Dados
31 / 1
8. rvores
Estruturas de Dados
32 / 1
8. rvores
Estruturas de Dados
33 / 1
8. rvores
Estruturas de Dados
34 / 1
8. rvores
Estruturas de Dados
35 / 1
8. rvores
Estruturas de Dados
36 / 1