Programação II
Prof. Mateus Raeder
Universidade do Vale do Rio dos Sinos
- São Leopoldo -
Árvores Binárias
• É uma árvore na qual os nós possuem no máximo 2
filhos
– 0, 1 ou 2 filhos
– Grau máximo: 2
• É formada por nós que possuem um valor
associado, um ponteiro para a direita e um
ponteiro para a esquerda
Programação II – Prof. Mateus Raeder
Árvores Binárias
Árvore binária
x
Árvore não-binária
A
A
B
D
E
E
F
H
B
C
D
F
G
G
I
C
I
H
J
Programação II – Prof. Mateus Raeder
Árvores Binárias
• O nó A é a raiz da árvore
• Como B é a raiz da sub-árvore
esquerda de A, dizemos que B é
o filho esquerdo de A
• Do mesmo modo, C é o filho
direito de A
• Por isso A é o pai dos nós B e C
e estes dois são irmãos
• O mesmo ocorre para todos os
demais nodos
A
B
D
C
E
Programação II – Prof. Mateus Raeder
G
Tipos de Árvores Binárias
• Estritamente Binária
A
– Ocorre quando todo nó que não é
folha tiver sub-árvores esquerda e
direita não vazias.
– Ou seja: todo nó tem 0 ou 2 filhos.
• Número de nós em uma árvore
estritamente binária com n
folhas: 2n-1
B
D
C
E
F
H
G
I
Programação II – Prof. Mateus Raeder
Tipos de Árvores Binárias
• Binária Completa
– É uma árvore estritamente binária,
na qual todos os nós folha estão ou
no penúltimo ou no último nível
A
B
D
C
E
Programação II – Prof. Mateus Raeder
Tipos de Árvores Binárias
• Binária Cheia
– É uma árvore estritamente binária, na qual todos os nós
folha estão no último nível
A
Embora possua muitos
nós, a distância
da raiz até os nós é
relativamente baixa
B
C
D
H
E
I
J
F
K
L
G
M
N
Programação II – Prof. Mateus Raeder
O
Árvores Binárias
• Representação
Referência para
filho da direita
Referência para
filho da esquerda
A
A
B
D
C
E
F
B
G
D
C
F
E
Dado do nó
Programação II – Prof. Mateus Raeder
G
Árvores Binárias
• Representação de expressões aritméticas em
árvores binárias
– Dada uma expressão aritmética, sua representação
em árvore binária é feita de tal forma que a ordem de
prioridade das operações fica implícita.
Regra:
• O operador de menor prioridade aparece na raiz;
• A sub-expressão à esquerda desse operador dá origem
à sub-árvore esquerda;
• A sub-expressão à direita do operador dá origem à subárvore direita.
Programação II – Prof. Mateus Raeder
Árvores Binárias
• Representação de expressões aritméticas em
árvores binárias
+
*
3
(3 * 7) + (6 / 10)
/
7
6
10
Operandos SEMPRE aparecem como folhas
Operadores NUNCA são folhas
Programação II – Prof. Mateus Raeder
Árvores Binárias
• Caminhamentos em árvores:
– Em pos-ordem
– Em in-ordem
– Em pré-ordem
Programação II – Prof. Mateus Raeder
Download

filho esquerdo