Você está na página 1de 13

rvores

Algoritmos e Estruturas de Dados


2005/2006

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
F

C
G

E
I

Ns sem descendentes:
folhas

J
AED - 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

AED - 2005/06

rvores
altura(A) = altura rvore = 3
profundidade=0

profundidade=1

profundidade=2

profundidade=3

AED - 2005/06

A
altura(D) = 2

D
pai(G) = D

filhos(G) = { H, I, J }

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)

AED - 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

AED - 2005/06

rvores
Percorrer rvores - exemplo

+
*
a

sen
f

Pr-ordem

+ * a b sen f * h j

Em-ordem

a * b + f sen h * j

Ps-ordem

a b * f sen h j * - +

Por nvel

+ * - a b sen * f h j

AED - 2005/06

*
h

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
...

AED - 2005/06

rvores binrias: aplicaes


Expresses aritmticas
+
*
1

*
+

2
3

Expresso = 1 * ( 2 + 3 ) + ( 2 * ( 4 1 ) )

AED - 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.

AED - 2005/06

10

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
10

AED - 2005/06

21
14

17

11

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)

AED - 2005/06

12

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 subrvore 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.

AED - 2005/06

13