Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Árvores
A
B C D
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
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
Representação
Alocação Sequencial
Alocação Encadeada
B C D
E F
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
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
Árvores Binárias
Aplicações:
Expressões aritméticas
Processos de decisão
Busca
Á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
Á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
Á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
Á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
Á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
Á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
Á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
Á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
Á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
2 8
1 4 7 9
3 5
Pesquisa 5 12
Semelhante à inserção
2 6 9 21
19 25
5 12
2 6 9 21
19 25
7 7
5 12 5 12
2 6 9 21 2 6 21
19 25 19 25
7 7
5 12 5 21
2 6 21 2 6 19 25
19 25
7 7
5 12 5 19
2 6 9 21 2 6 9 21
19 25 25