Algoritmos e Estruturas de Dados2005/2006
rvores
2AED - 2005/06
rvores Conjunto de ns e conjunto de arestas que ligam pares de ns
Um n a raiz Com excepo da raiz, todo o n est ligado por uma aresta a 1 e 1 s
n (o pai) H um caminho nico da raiz a cada n; o tamanho do caminho para um
n o nmero de arestas a percorrer
A
B C D E
F G H I
J
Ns sem descendentes: folhas
3AED - 2005/06
rvores Ramos da rvore
rvore de N ns tem N-1 ramos Profundidade de um n
Comprimento do caminho da raiz at ao n Profundidade da raiz 0 Produndidade de um n 1 + a profundidade do seu pai
Altura de um n Comprimento do caminho do n at folha a maior profundidade
Altura de uma folha 0 Altura de um n 1 + a altura do seu filho de maior altura
Altura da rvore: altura da raiz Se existe caminho do n u para o n v
u antepassado de v v descendente de u
Tamanho de um n: nmero de descendentes
4AED - 2005/06
rvores
A
B
G
C D
E
J
F
H I
profundidade=0
profundidade=1
profundidade=2
profundidade=3
altura(A) = altura rvore = 3
altura(D) = 2
pai(G) = D
filhos(G) = { H, I, J }
5AED - 2005/06
rvores binrias Uma rvore binria uma rvore em que cada n no tem mais
que dois filhos
Propriedades: Uma rvore binria no vazia com profundidade h tem no mnimo h+1,
e no mximo 2h+1-1 ns A profundidade de uma rvore com n elementos (n>0) no mnimo
log2n, e no mximo n-1 A profundidade mdia de uma rvore de n ns O(n)
6AED - 2005/06
rvores Percorrer rvores
Os elementos de uma rvore (binria) podem ser enumerados por quatro ordens diferentes. As trs primeiras definem-se recursivamente:
Pr-ordem: Primeiro a raiz, depois a sub-rvore esquerda, e finalmente a sub-rvore direita
Em-ordem: Primeiro a sub-rvore esquerda, depois a raiz, e finalmente a sub-rvore direita
Ps-ordem: Primeiro a sub-rvore esquerda, depois a sub-rvore direita, e finalmente a raiz
Por nvel: Os ns so processados por nvel (profundidade) crescente, e dentro de cada nvel, da esquerda para a direita
7AED - 2005/06
rvores Percorrer rvores - exemplo +
*
sen
j
-
a b
f
*
h
+ * - a b sen * f h jPor nvel
a b * f sen h j * - +Ps-ordem
a * b + f sen h * jEm-ordem
+ * a b sen f * h jPr-ordem
8AED - 2005/06
rvores binrias: implementao Operaes:
Criar uma rvore vazia Determinar se uma rvore est vazia Criar uma rvore a partir de duas sub-rvores Eliminar os elementos da rvore (esvaziar a rvore) Definir iteradores para percorrer a rvore Imprimir uma rvore ...
9AED - 2005/06
rvores binrias: aplicaesExpresses aritmticas
+
2
1
*
-
4
*
1 +
2 3
Expresso = 1 * ( 2 + 3 ) + ( 2 * ( 4 1 ) )
10AED - 2005/06
rvores binrias: aplicaes Construo da rvore de expresses
O algoritmo similar ao algoritmo de converso infixa->RPN mas usa duas pilhas, uma para guardar os operadores e outra para guardar sub-rvores correspondentes a sub-expresses.
O algoritmo procede da seguinte forma: Nmeros so transformados em rvores de 1 elemento e colocados na pilha
de operandos. Operadores so tratados como no programa de converso de infixa -> RPN
(usando uma pilha apenas para operadores e (). Quando um operador retirado da pilha, duas sub-rvores (operandos) so
retirados da pilha de operandos e combinados numa nova sub-rvore, que por sua vez colocada na pilha.
Quando a leitura da expresso chega ao fim, todos os operadores existentes na pilha so processados.
11AED - 2005/06
rvores binrias de pesquisa rvore binria de pesquisa
rvore binria, sem elementos repetidos, que verifica a seguinte propriedade: Para cada n, todos os valores da sub-rvore esquerda so menores, e todos os
valores da sub-rvore direita so maiores, que o valor desse n
15
12
17
21
10 14
12AED - 2005/06
rvores binrias de pesquisa Estrutura linear com elementos ordenados
A pesquisa de elementos pode ser realizada em O(log n) ... mas no insero ou remoo de elementos
Estrutura em rvore binria pode manter o tempo de acesso logartmico nas operaes de insero e
remoo de elementos rvore binria de pesquisa
mais operaes do que rvore binria bsica: pesquisar, inserir, remover objectos nos ns devem ser comparveis (Comparable)
13AED - 2005/06
rvores binrias de pesquisa Pesquisa
usa a propriedade de ordem na rvore para escolher caminho, eliminando uma sub-rvore a cada comparao
Insero como pesquisa; novo n inserido onde a pesquisa falha
Mximo e mnimo procura, escolhendo sempre a subrvore direita (mximo), ou sempre a sub-
rvore esquerda (mnimo)
Remoo N folha : apagar n N com 1 filho : filho substitui o pai N com 2 filhos: elemento substitudo pelo menor da sub-rvore direita (ou
maior da esquerda); o n deste tem no mximo 1 filho e apagado.
Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13
Top Related