Vous êtes sur la page 1sur 15

Estruturas de Dados

Árvores
Prof. Ricardo J. G. B. Campello

Créditos
Parte deste material consiste de:
 Adaptações dos slides gentilmente cedidos
pela Profa. Maria Cristina F. de Oliveira
 Adaptados dos originais de Walter Aoiama Nagai
e M. Graças Volpe Nunes

 Adaptações e extensões dos originais de


Goodrich & Tamassia
 Disponíveis em http://ww3.datastructures.net/

1
Introdução
 Problema:
 Listas Lineares
 Lista Encadeada
 Eficiente para inserção e remoção dinâmica de elementos,
mas ineficiente para busca
 Lista Seqüencial (ordenada)
 Eficiente para busca, mas ineficiente para inserção e
remoção de elementos

 Possível Solução:
 Árvores
 Eficientes para inserção, remoção e busca
 Representação não linear...

Introdução
Em computação, uma
árvore é um modelo ABC Computadores
abstrato de uma
estrutura hierárquica.
Trata-se de uma Vendas Produção P&D
estrutura não-linear
constituída de nós
com relações de BR Internacionais Laptops Desktops
parentesco (pai-filho).
Aplicações: Europa Asia EUA
 S.O.s (arquivos).
 Linguagens (O.O.).
 etc

2
Introdução
 Árvores são adequadas para representar
estruturas hierárquicas não lineares, como
relações de descendência
 pai, filhos, irmãos, etc.

Homer Simpson

Bart Lisa Maggie

Definição RT

T1 T2 ... Tn
 Árvore T: conjunto finito de elementos,
denominados nós, nodos ou vértices, tais que:

 Se T = ∅ a árvore é dita vazia;

 Caso Contrário:

(i) T contém um nó especial, denominado raiz (RT);

(ii) Os demais nós, ou constituem um único conjunto vazio, ou


são divididos em n conjuntos disjuntos não vazios
(T1,T2,…,Tn), que são, por sua vez, cada qual uma árvore;

 T1,T2,…,Tn são chamadas sub-árvores de RT;

3
Terminologia

 Se um nó Y é raiz de uma sub-árvore de um


nó X, então X é PAI de Y e Y é FILHO de X

 Dois nós são IRMÃOs se são filhos do


mesmo pai

 Se os nós Y1, Y2, ..., Yj são irmãos, e o nó Z


é filho de Y1, então Y2,...,Yj são TIOs de Z

Exemplo
Nós: A, B, C, D, E, F, G
RAIZ da Folhas: E,F,C,G
árvore A

FILHOS
DE A B C D
FILHO
FILHOS DE D
E F DE B G

4
Terminologia
Raiz (root): nó sem pai (A).
Nó Interno: nó com pelo
menos um filho (A, B, C, F).
A
Nó Externo ou Folha: nó
sem filhos (E, I, J, K, G, H, D).
Ancestrais (de um nó): pai B C D
ou ancestrais do pai do nó.
Descendentes (de um nó):
nós que o possuem como E F G H
ancestral.
Sub-Árvore: árvore
I J K
consistindo de um nó e dos
seus descendentes.

Sub-árvore
9

Exemplo
TIOS de F e E ANCESTRAIS DE G
A

NÓS
C D B IRMÃOS

DESCENDENTES
DE A
G F E

10

5
Terminologia
 O NÍVEL de um nó X é definido como:
 O nível de um nó raiz é 1
 O nível de um nó não raiz é dado por
 Nível de seu nó PAI + 1

 O GRAU de um nó X pertencente a uma


árvore é igual ao número de filhos de X
 Se X é folha, então Grau(X) = 0
 O GRAU de uma árvore T é o maior entre
os graus de todos os seus nós

11

Exemplo: NÍVEL 1 A

NÍVEL 2 B C D E

F G H NÍVEL 3 I J K L

Grau de A: 4
M N O NÍVEL 4
Grau de B: 3
Grau de C: 0
Grau de M: 1
P NÍVEL 5 Grau da Árvore: 4

12

6
Terminologia A

Profundidade (de um nó):


número de ancestrais. B C D
 Raiz possui profundidade zero.
Altura (de uma árvore): máxima E F G H
profundidade de qualquer nó.
 Exemplo ao lado ⇒ 3.
I J K
Altura (de um nó): altura da
sub-árvore com raiz naquele nó.
 Folhas possuem altura zero. Nota: Terminologia não é universal!
Sub-Árvore
Alguns autores consideram como 1
 Raiz possui altura da árvore. (ao invés de zero) a altura das folhas
e a profundidade da raiz, o que altera
Profundidade (de uma árvore): as demais definições.
máx. profundidade de uma folha.
 Equivalente à altura.
13

Exemplo: A

B C D E

F G H I J K L
ALTURA DE A: 4
ALTURA DE C: 0
M N O
ALTURA DE D: 1
PROF. DE A: 0
P PROF. DE C: 1
PROF. DE D: 1
Altura Árvore = Profundidade Árvore = 4

14

7
Outras Formas de Representação
 Representação por Parênteses Aninhados:
 ( A (B) ( C ( D (G) (H) ) (E) ( F (I) ) ) )
 ou seja, uma lista generalizada!!

 Representação por Diagramas de Venn:

A
C E
B
F
D H I
G

15

RT
Árvores Binárias (AB)
TE TD

 Uma Árvore Binária T é um conjunto finito de


elementos, denominados nós, nodos ou
vértices, tal que:
 (i) Se T = ∅, a árvore é dita vazia, ou

 (ii) T contém um nó especial, chamado raiz de T (RT),


e os demais nós podem ser subdivididos em dois
sub-conjuntos distintos, TE e TD, os quais também
são árvores binárias (possivelmente vazias).

 TE e TD são denominados sub-árvore esquerda e


sub-árvore direita de T, respectivamente

16

8
Árvores Binárias (AB)
 A raiz da sub-árvore esquerda (direita) de um nó v,
se existir, é denominada filho esquerdo (direito)
de v.
 Pela natureza da árvore binária, o filho esquerdo pode
existir sem o direito, e vice-versa
 Exemplo: A

B C

D E F

G H I

17

Algumas Propriedades de ABs


 Qual a altura máxima de uma AB com n nós?
0
 Resposta: n – 1 1
 Árvore degenerada ≡ Lista
n-1

 Qual a altura mínima de uma AB c/ n nós?


 Resposta: teto[ log2(n+1) ] – 1
n=1 ⇒ h=0
1 n = 2, 3 ⇒ h=1
n = 4, ..., 7 ⇒ h=2
2 3
n = 8, ..., 15 ⇒ h=3
...
4 5 6 7 n = 2h+1 – 1 ⇒ h = log2(n+1) – 1

18

9
Árvore Binária Própria
Também denominada de árvore Aplicações:
estritamente binária, é tal que:  Expressões aritméticas.
 Cada nó interno possui exatamente  Processos de decisão.
2 filhos (não vazios).  etc
Denomina-se o par de filhos de:
 filho esquerdo (left child), e A

 filho direito (right child).


Definição recursiva: B C

 Uma árvore de um único nó raiz,


ou
D E F G
 Uma árvore cuja raiz possui um
par ordenado de filhos, cada um
dos quais é a raiz de uma árvore
H I
binária própria.
19

Propriedades de Árvores Binárias Próprias


Notação: Algumas Propriedades:
n número de nós.  e= i + 1
e número de nós
 n = 2e − 1
externos.
 h ≤ i
i número de nós
internos.  h ≤ (n − 1)// 2

 e ≤ 2h
h altura.

 h ≥ log2 e

 h ≥ log2 (n + 1) − 1

20

10
Árvore Binária Própria
Exemplo de Aplicação:
 Árvore de Expressão Aritmética
 Árvore Binária associada com uma expressão aritmética
 Nós internos: operadores

 Nós externos: operandos


+
 Exemplo: (2 × (a − 1) + (3 × b))
× ×

2 − 3 b

a 1
21

Árvore Binária Própria


Exemplo de Aplicação:
 Árvore Binária de Decisão
 Árvore binária associada a um processo de decisão
 Nós internos: questões com respostas sim ou não
 Nós externos: decisões
Conservador?
 Exemplo:
Sim Não
Poupança Curto prazo?

Sim Não
Fundo R. Fixa Aceita Altos Riscos?

Sim Não
Ações Carteira 22
Mista

11
Árvore Binária Completa
 Árvore Binária Completa (ABC):
 É própria*
 Se a profundidade da árvore é d, então cada nó folha está
no nível d ou no nível d+1
 Os nós folha no nível d estão todos à direita dos internos

nível d

nível d+1

* Exceção pode eventualmente ser feita ao nó folha mais à direita do último nível, que pode não existir
23

Árvore Binária Cheia


 Árvore Binária Completa Cheia (ABCC)
 É ABC, e
 Todos os seus nós folha estão no mesmo nível

A
C,D,E,F estão no nível 3
(profundidade 2)
B G

C D E F

24

12
Árvore Binária Cheia

 Propriedade Importante:
 Dada uma ABCC e sua profundidade d (ou altura
h), calcula-se o número n de nós na árvore como:
 Nível 1 (d = 0): 1 nó (total = 1 nó)
 Nível 2 (d = 1): 2 nós (total = 3 nós)
 Nível 3 (d = 2): 4 nós (total = 7 nós)
 ...
 Nível i (d = i−1): 2d nós (total = 2i – 1 = 2d+1 – 1 nós)
 Logo: n = 2d+1 – 1 = 2h+1 – 1

25

Árvores Binárias Balanceadas


 Árvores Balanceadas: São tais que qualquer de suas
sub-árvores com m nós possui altura O(log m)
 Árvore Binária Balanceada: Para cada nó, as alturas
de suas sub-árvores diferem em, no máximo, 1

A A

B C B C

D E D E F

 Não é difícil mostrar que essa condição implica de fato que a


árvore é balanceada segundo a definição geral acima

26

13
Árvores Binárias Balanceadas
 Árvore Binária Perfeitamente Balanceada
 Para cada nó, o no. de nós de suas sub-árvores
esquerda e direita difere em, no máximo, 1

 Toda AB Perfeitamente Balanceada é AB Balanceada,


mas o inverso não é necessariamente verdade.

 Exemplo: A

B C

D E

27

Exercícios
 Prove por contra-exemplo que uma AB própria não é
necessariamente uma AB completa.
 Represente a seguinte expressão aritmética em uma
árvore binária própria de expressão aritmética:
 ( 5 + ( ( 2 / (a + 1) ) − (3 × b) ) ) × ( 10 / c )
 Responda com relação à árvore do exercício anterior:
 Qual a altura da árvore ?
 Qual a profundidade da árvore?
 Qual o grau da árvore?
 Quais os ancestrais, os descendentes, a profundidade, a
altura, o nível, o grau, o pai, os tios, os irmãos e os filhos do
nó correspondente ao operador de subtração da expressão ?

14
Exercícios
 Represente a árvore do exercício anterior via:
 Parênteses Aninhados
 Diagrama de Venn.
 Qual a altura máxima que uma árvore estritamente
binária com 45 nós pode ter? Justifique.
 Qual a altura máxima que uma árvore estritamente
binária com 27 nós externos pode ter? Justifique.
 Qual a altura mínima que uma árvore estritamente
binária com 43 nós pode ter? Justifique.
 Qual a altura mínima que uma árvore estritamente
binária com 30 nós externos pode ter? Justifique.
29

15

Vous aimerez peut-être aussi