Você está na página 1de 23

UNIVERSIDADE DE FORTALEZA

CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvores
A

B C D

Estrutura de Dados Árvores 1


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Definição
Em Ciência da Computação,
árvore é um modelo abstrato
de uma estrutura hierárquica
Uma árvore consiste em nós Computadores S.A.
com uma relação pai-filho
Aplicações:
Vendas Produção P&D
 Organogramas
 Sistemas de arquivos
 Ambientes de
Brasil Internacional Laptops Desktops
programação

Europa Ásia América

Estrutura de Dados Árvores 2


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Terminologia
Raiz: nó sem pai (A)
A
Nó interno: nó com pelo menos um
filho (A, B, C, F)
Nó externo (ou folha): nó sem B C D
filhos (E, I, J, K, G, H, D)
Ancestrais ​de um nó: pais, avós,
bisavós etc.
E F G H
Descendentes de um nó: filhos,
netos, bisnetos etc.
Profundidade (ou nível) de um nó:
I J K
número de ancestrais subárvore
Altura de uma árvore: profundidade
máxima dentre os nós (3)
Subárvore: árvore que consiste em
um nó e seus descendentes

Estrutura de Dados Árvores 3


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Representação
Alocação Sequencial

Alocação Encadeada

B C D

E F

Estrutura de Dados Árvores 4


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Representação
Alocação Sequencial
 Também conhecida como Alocação Estática
 Os nós são armazenados em um vetor
 Oferece dificuldades para manipulações
(inserções, remoções e pesquisas)
 Em geral, não é uma maneira conveniente para
representar árvores
 Exemplo: na representação abaixo, os números
à direita da informação de cada nó indicam o
número de filhos desse nó

A 3 B 0 C 2 E 0 F 0 D 0

Estrutura de Dados Árvores 5


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Representação
Alocação Encadeada
 Também conhecida como
Alocação Dinâmica
 Um nó é representado por
um objeto que armazena:
 A informação do nó
 As referências para seus A
filhos (subárvores)
 Cada nó tem um número
máximo de subárvores
 Grande quantidade de
referências não usadas B / / / C / D / / /

E / / / F / / /
Estrutura de Dados Árvores 6
UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvores Binárias
Uma árvore binária é uma árvore
com as seguintes propriedades:
 Cada nó interno tem no máximo
dois filhos (exatamente dois para A
árvores binárias próprias)
 Os filhos de um nó são um par
ordenado
Os filhos de um nó interno são B C
chamados de filho esquerdo e
filho direito
Definição alternativa (recursiva): D E F G
uma árvore binária é
 ou uma árvore que consiste de
um único nó
 ou uma árvore cuja raiz tem um H I
par ordenado de filhos, cada um
dos quais é uma árvore binária

Estrutura de Dados Árvores 7


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvores Binárias
Aplicações:
 Expressões aritméticas
 Processos de decisão
 Busca

Estrutura de Dados Árvores 8


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvores Binárias
Expressões aritméticas
 Árvore binária associada a uma expressão aritmética
 Nós internos: operadores
 Nós externos: operandos
 Exemplo: árvore de expressão aritmética para a expressão
(2  (a - 1) + (3  b))

 

2 - 3 b

a 1

Estrutura de Dados Árvores 9


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvores Binárias
Processos de decisão
 Árvore binária associada a um processo de decisão
 Nós internos: perguntas com resposta sim/não
 Nós externos: decisões
 Exemplo: decisão de jantar

Quer uma refeição rápida?


Sim Não

Que tal um café? Por conta da empresa?


Sim Não Sim Não

Starbucks Subway Murano Casa

Estrutura de Dados Árvores 10


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvores Binárias
Busca
 Árvore binária associada a pesquisa de dados
 Subárvore esquerda: dados menores do que o da a raiz
 Subárvore direita: dados maiores do que o da a raiz
 Exemplo: procurar o número 7 na árvore binária de busca
abaixo

2 8

1 4 7 9

3 5

Estrutura de Dados Árvores 11


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvores Binárias
Alocação Sequencial
A
 A posição do nó no vetor corresponde à sua
posição na árvore
 O nó na posição 0 (zero) é a raiz
B C
 Seja i a posição de um nó no vetor:
 Posição do filho esquerdo: 2i + 1
 Posição do filho direito: 2i + 2
D E F G
 Posição do pai: (i – 1) div 2
 As posições de árvore sem nós
são preenchidas no vetor com
H I
0 (zero) ou null (nulo)

A B C D E F G / / H I …
0 1 2 3 4 5 6 7 8 9 10

Estrutura de Dados Árvores 12


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvores Binárias
Alocação Encadeada
 Um nó é representado por um objeto
que armazena:
 A informação do nó
 Uma referência para o filho esquerdo
 Uma referência para o filho direito
B

B A / / D

A D
C / / E / /

C E

Estrutura de Dados Árvores 13


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvores Binárias
Percurso
 Visita sistemática a cada um dos nós
de uma árvore binária
 Tipos
 Pré-ordem
 Em ordem
 Pós-ordem

2 8

1 4 7 9

3 5

Estrutura de Dados Árvores 14


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvores Binárias
Percurso em Pré-ordem Algoritmo preOrdem(v)
 Um nó é visitado antes dos visita(v)
seus descendentes
 Passos: se temEsquerda(v)
1) Visita a raiz preOrdem(esquerda(v))
2) Percorre a subárvore da
esquerda em pré-ordem se temDireita(v)
3) Percorre a subárvore da preOrdem(direita(v))
direita em pré-ordem
 Exemplo: 6 2 1 4 3 5 8 7 9
6
 Aplicações:
 Impressão de um
documento estruturado 2 8
 Avaliação de expressões
aritméticas 1 4 7 9

3 5

Estrutura de Dados Árvores 15


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvores Binárias
Percurso em Ordem Algoritmo emOrdem(v)
 Um nó é visitado depois da se temEsquerda(v)
sua subárvore da esquerda
e antes da sua subárvore emOrdem(esquerda(v))
da direita
visita(v)
 Passos:
1) Percorre a subárvore da se temDireita(v)
esquerda em ordem
2) Visita a raiz
emOrdem(direita(v))
3) Percorre a subárvore da
direita em ordem 6
 Exemplo: 1 2 3 4 5 6 7 8 9
 Aplicação: 2 8
 Impressão dos elementos
conforme a relação de 1 4 7 9
ordem

3 5

Estrutura de Dados Árvores 16


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvores Binárias
Percurso em Pós-ordem Algoritmo posOrdem(v)
 Um nó é visitado depois se temEsquerda(v)
dos seus descendentes
 Passos: posOrdem(esquerda(v))
1) Percorre a subárvore da se temDireita(v)
esquerda em pós-ordem
2) Percorre a subárvore da posOrdem(direita(v))
direita em pós-ordem
3) Visita a raiz
visita(v)
 Exemplo: 1 3 5 4 2 7 9 8 6
6
 Aplicação:
 Computar o espaço usado
pelos arquivos em um 2 8
diretório e seus
subdiretórios
1 4 7 9

3 5

Estrutura de Dados Árvores 17


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvore Binária de Busca


Árvore binária associada a pesquisa de dados
 Relação de ordem entre os dados armazenados
 Subárvore esquerda: dados menores do que o da a raiz
 Subárvore direita: dados maiores do que o da a raiz
 Cada subárvore é também uma árvore binária de
busca

2 8

1 4 7 9

3 5

Estrutura de Dados Árvores 18


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvore Binária de Busca


Inserção
 Se a árvore for vazia
 O dado é inserido na raiz
 Caso contrário
 Se o dado for menor que o da raiz
 O dado é inserido na subárvore
da esquerda
 Se o dado for maior que o da raiz 7
 O dado é inserido na subárvore
da direita

Pesquisa 5 12
 Semelhante à inserção

2 6 9 21

19 25

Estrutura de Dados Árvores 19


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvore Binária de Busca


Remoção
 Para o nó a ser removido, deve-se
considerar três casos:
1) Não tem filhos
2) Tem um filho
3) Tem dois filhos

5 12

2 6 9 21

19 25

Estrutura de Dados Árvores 20


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvore Binária de Busca


Remoção
1) O nó a ser removido não tem filhos
 Simplesmente descarta-se o nó.

7 7

5 12 5 12

2 6 9 21 2 6 21

19 25 19 25

Estrutura de Dados Árvores 21


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvore Binária de Busca


Remoção
2) O nó a ser removido tem um filho
 O nó é cortado da árvore e o único filho (com a sua subárvore)
é ligado diretamente ao pai do nó removido.

7 7

5 12 5 21

2 6 21 2 6 19 25

19 25

Estrutura de Dados Árvores 22


UNIVERSIDADE DE FORTALEZA
CENTRO DE CIÊNCIAS TECNOLÓGICAS

Árvore Binária de Busca


Remoção
3) O nó a ser removido tem dois filhos
 Encontrar o valor mínimo na subárvore à direita
 Substituir o valor do nó a ser removido pelo mínimo encontrado
(agora a subárvore à direita contém uma duplicata!)
 Remover a duplicata da subárvore à direita (casos 1 ou 2)

7 7

5 12 5 19

2 6 9 21 2 6 9 21

19 25 25

Estrutura de Dados Árvores 23

Você também pode gostar