Post on 19-Apr-2015
Árvores (introdução)
Anjolina Grisi de OliveiraObs: vários slides foram cedidos por
Adolfo Almeida Duran (UFBA)
Matemática Discreta/ Grafos CIn - UFPE 2
Uma árvore é um grafo conexo não orientado e sem circuitos simples
Árvores
Matemática Discreta/ Grafos CIn - UFPE 3
Uma floresta é um grafo cujas componentes conexas são árvores
Matemática Discreta/ Grafos CIn - UFPE 4
TeoremaUm grafo não orientado é uma árvore se e somente se existe um único caminho simples entre qualquer par de vértices.ProvaAssuma que G é uma árvore. Logo G é um grafo conexo e sem circuitos simples. Sejam x e y dois nós de G. Logo, como G é conexo, existe um caminho simples entre x e y. Adicionalmente, esse caminho é único, pois se existisse um outro caminho, o caminho formado através da combinação do caminho de x até y com o segundo caminho começando por y e chegando a x formaria um circuito, o que contraria a hipótese de que G é uma árvore.
Matemática Discreta/ Grafos CIn - UFPE 5
Árvore Enraizada
Uma árvore T = (V,E) é denominado enraizada quando algum vértice v é escolhido como especial. Esse vértice v é a raiz da árvore.
Matemática Discreta/ Grafos CIn - UFPE 6
Árvore EnraizadaUsualmente representamos graficamente a raiz no topo. Podemos transformar uma árvore sem raiz numa árvore enraizada simplesmente escolhendo um vértice como raiz.
Matemática Discreta/ Grafos CIn - UFPE 7
Árvore Enraizada ancestrais de j={e,c}
descendentes de j={i,k}
pai de j=e
filhos de j={i,k}
nível de j=2
altura da árvore =3
folhas={b,a,i,k,f,h,d}
Raiz = c
Matemática Discreta/ Grafos CIn - UFPE 8
Árvore Enraizada O nível de um vértice é o tamanho do único caminho da raiz até ele.
nível de j=2
A altura da árvore é o maior nível entre os nós. É o tamanho do maior caminho da raiz até uma das folhas.
altura da árvore =3
Raiz = c
Matemática Discreta/ Grafos CIn - UFPE 9
Árvore Enraizada
A raiz de uma árvore não possui pai, e todo vértice v diferente de r, possui um único pai.
Uma folha é um vértice que não possui filhos. Vértices que possuem filhos são chamados de vértices internos.Quando a raiz é o único nó do grafo ela é uma folha.
O nível da raiz é zero, de seus filhos é 1. O nível de um nó é igual ao nível de seu pai mais um.Para dois vértices irmãos v e w, nível(v)=nível(w).A altura de uma árvore é o valor máximo de nível(r) para todo vértice v de T.
Matemática Discreta/ Grafos CIn - UFPE 10
Subárvore
Seja T(V,E) uma árvore enraizada e v V.Uma subárvore Tv de T é uma árvore enraizada cuja raiz é v, definida pelo subgrafo induzido pelos descendentes de v mais o próprio v. A subárvore de raiz v é única para cada v V.
s v
xwt
u
x
v
w
Matemática Discreta/ Grafos CIn - UFPE 11
Árvore m-ária
Uma árvore enraizada é chamada de m-ária se todo nó interno não possui mais que m filhos. A árvore é chamada árvore m-ária cheia se todo nó interno possui exatamente m filhos. Uma árvore m-ária com m=2 é chamada de árvore binária.
3-ária Binária
Matemática Discreta/ Grafos CIn - UFPE 12
Árvore m-ária
A árvore é chamada árvore m-ária cheia se todo nó interno possui exatamente m filhos. Uma árvore m-ária com m=2 é chamada de árvore binária.
Binária cheia
s
xw
t
u v
z-
Matemática Discreta/ Grafos CIn - UFPE 13
Árvore m-ária
Uma árvore enraizada m-ária de altura h é balanceada se todas as folhas estão no nível h ou h-1.
Matemática Discreta/ Grafos CIn - UFPE 14
Árvore Balanceada?
h=3
Nível(a) =1
Não está balanceada
Matemática Discreta/ Grafos CIn - UFPE 15
Árvore Enraizada Ordenada
Na definição de árvore enraizada, é irrelevante a ordem em que os filhos de cada vértice v são considerados.
Caso a ordenação seja relevante a árvore é denominada enraizada ordenada.
Assim, para cada vértice v pode-se identificar o primeiro filho de v (o mais a esquerda), o segundo filho (o segundo mais a esquerda), etc.
Matemática Discreta/ Grafos CIn - UFPE 16
Árvores
Matemática Discreta/ Grafos CIn - UFPE 17
Árvore enraizada ordenada No caso de árvores binárias, se um nó interno possui dois filhos, temos o filho da esquerda e o filho da direitaA árvore cuja raiz é o filho da esquerda de um vértice é chamada de subárvore da esquerda desse vértice.
a
d
cb
e
b
de
Subárvore da esquerda de a
Matemática Discreta/ Grafos CIn - UFPE 18
Teorema
Uma árvore com n nós possui n-1 arestas.
Prova
Definimos uma bijeção entre as arestas e os vértices diferentes da raiz, de forma que associamos cada vértice terminal de uma aresta com ela própria. Como existem n-1 nós além da raiz, logo existem n-1 arestas na árvore.
Matemática Discreta/ Grafos CIn - UFPE 19
Teorema
Uma árvore m-ária cheia com i nós internos contem n = mi + 1 nós.
Prova
Cada vértice com exceção da raiz é filho de um nó interno. Como cada um dos i nós internos possui m filhos, existem mi nós na árvore além da raiz. Consequentemente, a árvore contem n = mi + 1 nós.
Matemática Discreta/ Grafos CIn - UFPE 20
Teorema
Uma árvore m-ária cheia com
(i) n nós possui i=(n-1)/m nós internos e l = ((m-1)n +1)/m folhas
(ii) i nós internos possui n = mi + 1 nós e f= (m-1)i + 1 folhas
(iii) f folhas possui n = (mf – 1)/ (m-1) nós e i= (f-1)/(m-1) nós internos
Matemática Discreta/ Grafos CIn - UFPE 21
Teorema - Prova
Uma árvore m-ária cheia com
(i) n nós possui i=(n-1)/m nós internos e l = ((m-1)n +1)/m folhas
Vimos que n= mi + 1, logo i = (n-1)/m.
Temos também que n = i + f, onde f é o número de folhas.
Logo, f = n – i;
f = n – (n-1)/m = (mn – (n-1))/m = (mn – n + 1)/m =
((m-1)n + 1)/m
Matemática Discreta/ Grafos CIn - UFPE 22
Exemplo
Suponha que alguém iniciou uma corrente de cartas. Cada pessoa que recebe a carta é convidada a enviá-la para outras quatro pessoas. Quantas pessoas receberam a carta, incluindo a pessoa que iniciou a corrente, se nenhuma pessoa recebeu mais que uma carta e se a corrente acabou depois que 64 pessoas leram a carta e não mais a enviaram? Quantas
pessoas enviaram a carta?
Matemática Discreta/ Grafos CIn - UFPE 23
Solução
A corrente pode ser representada usando uma árvore 4-ária. Os nós internos correspondem às pessoas que enviaram a carta, e as folhas às pessoas que não a enviaram.
Temos que 64 pessoas não enviaram a carta. Assim o número de folhas f é igual a 64.
Temos n = i + f e n = mi + 1.
Logo: 64 + i = 4.i + 1 => 3.i = 63 => i = 21
Resposta: 21 pessoas enviaram a carta
Matemática Discreta/ Grafos CIn - UFPE 24
Teorema Existem no máximo mh folhas em uma árvore m-ária de altura h.Prova: por indução sobre a altura
h-1 h-1 h-1
Cada uma dessas subárvores possui altura no máximo h-1. Portanto, pela H.I. existem no máximo mh-1 folhas em cada uma delas. Como existem no máximo m dessas subárvores, cada uma com no máximo mh-1 folhas, então existem no máximo m.mh-1 = mh folhas.
Matemática Discreta/ Grafos CIn - UFPE 25
Aplicações: Árvore binária de busca
Busca de itens numa lista.
Cada vértice é rotulado por uma chave de forma que a chave de um vértice é maior do que as chaves de todos os nós da subárvore da esquerda e menor do que as chaves dos nós da subárvore da direita.
55
30 80
45
90
32
3520
Matemática Discreta/ Grafos CIn - UFPE 26
Construindo uma árvore binária de busca
Procedimento recursivo que recebe uma lista de itens.
O primeiro item da lista é a raiz da árvore.
Para adicionar um novo item compare-o com os nós que já estão na árvore: comece pela raiz e siga para a esquerda se o item é menor que o item que rotula o nó que está sendo comparado ou siga para a direita, caso contrário. Quando o novo item é menor que um item cujo nó não tem filho da esquerda, adicione-o como filho da esquerda desse nó. Analogamente, quando o item é maior que o item cujo nó não tem filho da direita, adicione-o como filho da direita desse nó,
Matemática Discreta/ Grafos CIn - UFPE 27
Construindo uma árvore binária de busca
Construa uma árvore binária de busca a partir da seguinte lista:
55,30,80,90,35,32,20,45
Matemática Discreta/ Grafos CIn - UFPE 28
Exemplo: árvore binária de busca
Use a ordem alfabética para construir uma árvore binária de busca com as palavras da seguinte frase:
O título de uma das músicas de sucesso do cantor Bruno Mars é ``The Lazy Song´´.
Matemática Discreta/ Grafos CIn - UFPE 29
Caminhado em árvores enraizadas e ordenadas
Procedimento universal para ordenar os seus nós:
• Rotule a raiz com o inteiro 0. Em seguida rotule seus k filhos da esquerda para direita com 1,2,3,....,k.
• Para cada vértice v no nível n com rótulo A, rotule seus k filhos da esquerda para a direita com A.1, A.2, ...A.k.
Matemática Discreta/ Grafos CIn - UFPE 30
Exemplo0
3.13.2
32
1.1.1
1.1
1
1.2
1.1.2
1.1.2.31.1.2.2
1.1.2.1
3.1.2
3.3
3.1.1
Matemática Discreta/ Grafos CIn - UFPE 31
Procedimento universal para ordenar os nós
• Podemos ordenar os nós usando a ordem lexicográfica de seus rótulos.
x1.x2....xn < y1.y2....ym se
• existe um i, 0 i n, com x1= y1, x2=y2, ...xi-1 = yi-1 e xi< yi; ou
• n < m e xi=yi, para i =1,2,...,n.
Matemática Discreta/ Grafos CIn - UFPE 32
Caminhamento em pré-ordem
Seja T uma árvore enraizada e ordenada com raiz r. Se T possui apenas r, então o caminhamento em pré-ordem de T é r. Caso contrário, sejam T1, T2,... Tn
as subárvores de r da esquerda para a direita. O caminhamento em pré-ordem começa visitando r e continua fazendo um caminhamento em pré-ordem em T1, em seguida em T2, e assim sucessivamente até que Tn seja percorrida em pré-ordem.
Matemática Discreta/ Grafos CIn - UFPE 33
Exemploa
gh
dc
j
e
b
f
k
pon
m
i
l
Matemática Discreta/ Grafos CIn - UFPE 34
Caminhamento em ordem
Seja T uma árvore enraizada e ordenada com raiz r. Se T possui apenas r, então o caminhamento em ordem de T é r. Caso contrário, sejam T1, T2,... Tn as subárvores de r da esquerda para a direita. O caminhamento em ordem começa fazendo um percorrendo em ordem em T1 em ordem, em seguida visita r, e continua fazendo um caminhamento em ordem em T2, em T3 , e finalmente em Tn .
Matemática Discreta/ Grafos CIn - UFPE 35
Caminhamento em pós-ordem
Seja T uma árvore enraizada e ordenada com raiz r. Se T possui apenas r, então o caminhamento em pós-ordem de T é r. Caso contrário, sejam T1, T2,... Tn
as subárvores de r da esquerda para a direita. O caminhamento em pós-ordem começa percorrendo T1 em pós-ordem, em seguida T2, T3 , ... Tn , e finaliza visitando r.
Matemática Discreta/ Grafos CIn - UFPE 36
Notação infixa, pré-fixa e pós-fixa
Podemos representar expressões complicadas, tais como proposições compostas, combinações de conjuntos, e expressões aritméticas usando árvores enraizadas ordenadas.
• O nós internos representam operações
• As folhas representam as variáveis ou valores
• As operações são executadas na subárvore da esquerda e depois na direita
Matemática Discreta/ Grafos CIn - UFPE 37
Notação infixa: exemplo Árvore que representa a expressão
((x+y)^2) + ((x-4)/3):• A árvore binária é construída de baixo para cima.
• Construímos a subárvore (x+y), depois a incorporamos como parte de uma subárvore maior que representa (x+y)^2.
+
x y
+
x y
2
^
Matemática Discreta/ Grafos CIn - UFPE 38
Notação infixa: ((x+y)^2) + ((x-4)/3)• Do mesmo modo a subárvore (x-4) é construída e incorporada à subárvore maior de (x-4)/3
+
x y
+
x y
2
^
-
x 4
-
x 4
3
/
Matemática Discreta/ Grafos CIn - UFPE 39
Notação infixa: ((x+y)^2) + ((x-4)/3)
Por último as subárvore de ((x+y)^2) e de
((x-4)/3) são combinadas para formar a expressão toda
+
x y
2
^
-
x 4
3
/
+
Matemática Discreta/ Grafos CIn - UFPE 40
Caminhamento em ordem: ((x+y)^2) + ((x-4)/3)
+
x y
2
^
-
x 4
3
/
+
Matemática Discreta/ Grafos CIn - UFPE 41
Qual é a forma pré-fixa da expressão ((x+y)^2) + ((x-4)/3) ? (notação polonesa)
Fazemos um caminhamento em pré-ordem
+ ^ + x y 2 / - x 4 3
+
x y
2
^
-
x 4
3
/
+
Matemática Discreta/ Grafos CIn - UFPE 42
Qual o valor da expressão + - * 2 3 5 / ^2 3 4 ?
+ - * 2 3 5 / ^2 3 4
+ - * 2 3 5 / 8 4
+ - * 2 3 5 / 8 4
+ - * 2 3 5 2
3
2
* 2 3
5 2+ -
6
5 2+ -
6
5 2+ -
1
- 6 5+
+
21
+
2
Matemática Discreta/ Grafos CIn - UFPE 43
Qual é a forma pós-fixa da expressão ((x+y)^2) + ((x-4)/3) ? Fazemos um caminhamento em pós-ordem
x y + 2 ^ x 4 – 3 / +
+
x y
2
^
-
x 4
3
/
+
Matemática Discreta/ Grafos CIn - UFPE 44
Qual o valor da expressão em notação pós-fixa?7 2 3 * - 4 ^9 3 / +
7 6 - 4 ^9 3 / +
1 4 ^ 9 3 / +
1 9 3 / +
1 3 +
4
Matemática Discreta/ Grafos CIn - UFPE 45
Encontre a árvore enraizada ordenada que representa a seguinte proposição composta (¬(pΛq))↔(¬p v ¬q)
Λ
p q↔
p
v
¬
q
¬Λ
p q
¬
p
¬
q
¬
p
v
¬
q
¬Λ
p q
¬
Matemática Discreta/ Grafos CIn - UFPE 46
Forneça a notação pré-fixa e pós-fixa dessa expressão (¬(pΛq))↔(¬p v ¬q)
↔
p
v
¬
q
¬Λ
p q
¬
Pré-fixa: ↔¬Λpqv¬p¬q
Pós-fixa: pqΛ¬p¬q¬v↔
O caminhamento em ordem colocaria a negação imediatamente após o seu operando. Isso acontece sempre com os operadores unários.
A expressões em notação pré-fixa e pós-fixa não são ambíguas. Por esse motivo, são utilizadas em computação. Especialmente na construção de compiladores
Matemática Discreta/ Grafos CIn - UFPE 47
Desenhe a árvore enraizada ordenada da seguinte expressão aritmética escrita usando a notação pré-fixa.+ * + - 5 3 2 1 4Em seguida, escreva a mesma expressão em notação infixa.
-
5 3
2
+ 1
* 4
+
((((5-3)+2)*1)+4)
Matemática Discreta/ Grafos CIn - UFPE 48
Mais aplicações de árvores
1 Árvores de decisão 2 Código de prefixo-Pode ser usado em compactação de arquivos ou criptografia-Considere o problema em que letras são codificadas por sequências de bits-Uma maneira de garantir que nenhuma sequência de bits corresponde a mais de uma sequência de letras, é escolher códigos de forma que a cadeia de bits para uma letra nunca ocorre como prefixo de uma cadeia de bits de outra letra.
Matemática Discreta/ Grafos CIn - UFPE 49
Construa a árvore binária com os códigos de prefixo que representam os seguintes esquemas de codificação:
1) a:11, e:0, r:101, s:100 2) a:1,e:01,r:001, s:0001, n:00001
s r
a
e 0
1
1
10
0
Matemática Discreta/ Grafos CIn - UFPE 50
2) a:1,e:01,r:001, s:0001, n:00001
s
r
0
1
1
0
e
a
0
1
1