Você está na página 1de 23

MATEMÁTICA DISCRETA II

Prof. Maigan Alcântara

Universidade Federal Rural de Pernambuco


DC
UFRPE

ÁRVORES
Algoritmo de percurso em árvores
Algoritmos de percurso em árvores
• Procedimentos para visitar sistematicamente todos os vértices de
uma árvore
• Pré-ordem
• Ordem
• Pós-ordem
Percurso 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.
RED
Percurso em pré-ordem - Binárias
• Pré-ordem (ou profundidade):
• Visita a raiz;
• Percorre a sub-árvore esquerda em pré-ordem;
• Percorre a sub-árvore direita em pré-ordem.

ABDCEGFHI
Percurso 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 percurso em ordem em
T1, em seguida visita r, e continua fazendo um
caminhamento em ordem em T2, em T3 , e
finalmente em Tn .
ERD
Percurso em ordem - Binárias
• Percorre a sub-árvore esquerda em ordem;
• Visita a raiz;
• Percorre a sub-árvore direita em ordem.

DBAEGCHFI
Percuso 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.
EDR
Percurso em Pós-ordem - Binárias
• Percorre a sub-árvore esquerda em pos-ordem;
• Percorre a sub-árvore direita em pos-ordem;
• Visita a raiz.

DBGEHIFCA
Resumo: percurso em árvores
• Pré-ordem: R E D
• Primeira vez que a seta passa
pelo vértice
• a, b, d, h, e, i, j, c, f, g, k
• Ordem: E R D
• Folhas na primeira vez e vértices
internos na segunda vez
• h, d, b, i, e, j, a, f, c, k, g
• Pós-ordem: E D R
• Segunda vez que passa pelo
vértice (subida)
• h, d, i, j, e, b, f, k, g, c, a
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
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.

^
+
+ 2
x y
x y
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
^
+
+ 2
x y
x y

- - 3

x 4 x 4
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
+

^ /

+ 2 - 3

x y x 4
Percurso em ordem:
((x+y)^2) + ((x-4)/3)

^ /

+ 2 - 3

x y x 4
Notação polonesa (Pré-fixa)
• O operador precede seus dois operandos
• Ex: + x y  x+y

• Expressão pode ser avaliada da direita para a esquerda


• Quando encontrar um operador, realizar a operação com os dois
operandos imediatamente a direita

• Não necessita de parênteses


Qual é a forma pré-fixa (notação polonesa) da
expressão
((x+y)^2) + ((x-4)/3) ?
Fazemos um percurso em pré-ordem
+^+xy2/-x43
+

^ /

+ 2 - 3

x y x 4
Qual o valor da expressão
+ - * 2 3 5 / ^2 3 4 ?

+ - * 2 3 5 / ^2 3 4
+-*235/ 8 4 +- 6 52
+-*235 /84 + -65 2
+-*235 2 + 1 2
+- *23 52 + 1 2
+- 6 52 3
Notação Pós-fixa (Polonesa reversa)
• O operador sucede seus dois operandos
• Ex: x y +  x+y

• Expressão pode ser avaliada da esquerda para a direita

• Não necessita de parênteses


Qual é a forma pós-fixa da expressão
((x+y)^2) + ((x-4)/3) ?
Fazemos um caminhamento em pós-ordem
xy+2^x4–3/+ - Notação polonesa reversa
- Interpretada da esquerda para direita

^ /

+ 2 - 3

x y x 4
Notação x Percurso

Notação Percurso

Pré-fixa Pré-ordem

Infixa Em ordem

Pós-fixa Pós-ordem
Forneça a notação pré-fixa e pós-fixa dessa
expressão (¬(pΛq))↔(¬p v ¬q)

↔ Pré-fixa: ↔¬Λpqv¬p¬q

Pós-fixa: pqΛ¬p¬q¬v↔
¬ v

Λ ¬ ¬

p q p q

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
Desenhe a árvore enraizada ordenada da seguinte
expressão aritmética escrita usando a notação pré-
fixa.
+*+-53214
Em seguida, escreva a mesma expressão em
notação infixa.
+

* 4 ((((5-3)+2)*1)+4)

+ 1

- 2

5 3
Mais aplicações de árvores
• Árvores de decisão
• Importantes para extração de regras / aprendizagem de máquina
• Código de prefixo
• Pode ser usado em compactação de arquivos ou criptografia
• Sequências de bits menores para caracteres mais frequentes
• 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.