Transcript
UNIVERSIDADE
CCET
Computação
Física
CCS
CCH
História
Ciências Sociais
Enfermagem
Educação Física
Animal
Ave
Galinha
Mamífero
Cachorro
Macaco
Pato
Poodle
Pastor Alemão
Baleia
Itália
França
Alemanha
Itália
Alemanha
Argentina
Itália
Ucrânia
Portugal
França
Inglaterra
Portugal
Brasil
França
Portugal
Holanda
Inglaterra
Equador
Espanha
França
Brasil
Gana
Suíça
Ucrânia
Itália
Austrália
Argentina
México
Alemanha
Suécia
ÁRVORES
ÁRVORES BINÁRIAS
Árvores alinhadas
ÁRVORES BINÁRIAS DE BUSCA
Heap binário
Árvores avl
ESTRUTURAS DE DADOS
Professor: Cláudio Carvalho
Conversão para árvore binária
Árvores Binárias
Uma árvore com grau maior que 2 pode ser transformada em binária, se ligarmos os nós irmãos e removermos a ligação entre um nó pai e os nós filhos, exceto as do primeiro filho.
Se um nó tem n filhos, para i de 2 até n, o nó i passa a ser visto como filho direito do seu irmão i-1.
Tomemos como exemplo a árvore a seguir:
a
b
e
d
g
f
c
a
b
e
d
g
f
c
a
b
e
d
g
f
c
OBSERVAÇÕES: Para se interpretar corretamente a hierarquia de uma árvore transformada, é preciso ter em mente a transformação havida. Assim, a subárvore esquerda de um nó é seu filho realmente, enquanto que a direita é seu irmão.
ÁRVORES ALINHADAS
Motivação
Definição
Representação
Alocação
Custo de Manutenção
Motivação
Examinando-se a representação de uma árvore binária, pode-se constatar a existência de muitas referências (para subárvores) nulas nos nós.
De fato, é fácil verificar que em uma árvore binária de n nós, ocorrem n+1 referências nulas. A árvore a seguir possui 5 nós e 6 referências nulas:
O principal motivo de se ter uma árvore binária alinhada (ou costurada) é a utilização das referências nulas, para facilitar o caminhamento sobre a árvore.
Árvores Alinhadas
a
b
c
d
e
Definição
As árvores alinhadas, são também chamadas de árvores amarradas ou costuradas.
As arvores alinhadas devem considerar um percurso de caminhamento. Veremos aqui árvores alinhadas nos três percursos em profundidade (pre-order, pos-order e in-order).
São árvores binárias cujas referências nulas de seus nós são substituídas por "amarras" ou "costuras", que são, na realidade, referências a outros nós da árvore, considerando uma ordem de caminhamento, como segue:
Se a subárvore esquerda de um nó é vazia, a referência esquerda deste nó aponta para o seu predecessor.
Se a subárvore direita de um nó é vazia, a referência direita deste nó aponta para o seu sucessor.
Árvores Alinhadas
Percurso - Profundidade
Árvores Binárias
EXERCÍCIO:
Listar os nós da árvore a seguir em pre-order, in-order e pos-order.
RESPOSTAS:
pre-order: a b d c e g h f
in-order: d b a g e h c f
pos-order: d b g h e f c a
a
b
d
c
f
e
g
h
Representação
Árvores Alinhadas
4
2
6
1
5
3
(a)
4
2
6
1
5
3
(b)
4
2
6
1
5
3
(c)
4
2
6
1
5
3
EXEMPLO:
Listemos os nós da árvore ao lado em:
PRE-ORDER: 4 2 1 3 6 5
IN-ORDER: 1 2 3 4 5 6
POS-ORDER: 1 3 2 5 6 4
As árvores (a), (b) e (c) representam a árvore ao lado costurada em pre-order, in-order e pos-order, respectivamente.
Percurso - Profundidade
Árvores Binárias
Considerando que o percurso na árvore comece pela raiz, desça pela sua esquerda (e pela esquerda de cada nó), até chegar novamente à raiz, agora pela direita, podemos caracterizar cada um dos três percursos como:
Pre-order: o nó é listado da primeira vez que passa por ele.
In-order: o nó é listado da segunda vez que passa por ele.
(depois de listar a sua subárvore esquerda, ainda que vazia).
Pos-order: o nó é listado da última vez que passa por ele.
(depois de listar a sua subárvore direita, ainda que vazia).
a
b
c
EXEMPLO:
Listagem dos nós da árvore ao lado, nos três percursos:
- PRE-ORDER (ou pré-ordem): a b c
- IN-ORDER (ou simétrica): b a c
- POS-ORDER (ou pós-ordem): b c a
Percurso - Profundidade
Árvores Binárias
Consiste basicamente em três tarefas:.
V – Visitar um nó (e listar o seu valor).
L – Percorrer a subárvore da esquerda (left).
R – Percorrer a subárvore da direita (right).
Estas três tarefas podem estar organizadas de 6 formas distintas (3!):
VLR a b c
RLV c b a
LVR b a c
RVL c a b
LRV b c a
VRL a c b
Os percursos I, III e V são os mais conhecidos. São percursos em que os movimentos são sempre da esquerda para a direita. Seus nomes são, respectivamente, pre-order, in-order e pos-order.
a
b
c
Alocação
Árvores Binárias
DINÂMICA:
Cada nó possui um campo para guardar sua informação (chave) k, e campos de referência para suas subárvores direita e esquerda.
ESTÁTICA:
Não indicada, pois requer alocação de espaço considerando uma árvore cheia (já que deve ser alocado espaço para todas as possíveis subárvores).
Os filhos de um nó i ficam nas posições 2i (esquerdo) e 2i + 1 (direito).
Se um nó é folha, ele deve estar no último nível, ou seus filhos estão vazios.
k1
k2
k3
k4
k5
1
2
3
...
n
k
Alocação
Árvores Binárias
EXEMPLOS:
Tomemos como base a árvore ao lado.
Se ela fosse cheia, ela teria 7 nós, com 4 no último nível.
DINÂMICA:
ESTÁTICA:
a
b
c
d
e
1
2
3
4
5
6
7
a
b
d
c
e
a
b
d
c
e
T
Percurso
Árvores Binárias
Processo em que se visita cada nó da árvore apenas uma vez.
Pode ser visto como uma linearização da árvore (todos os nós em uma linha).
O percurso diz apenas que cada nó deve ser visitado uma única vez; mas não especifica em que ordem estes nós devem aparecer. Desta forma, para n nós, tem-se n! possíveis listagens da árvore.
Para a árvore a seguir, por exemplo, existem 6 possíveis listagens.
Ex.: a b c
a c b
b a c
b c a
c a b
c b a
Em face da abundância de percursos, e da inutilidade da maioria deles, o estudo destes se restringe a duas classes: extensão e profundidade.
a
b
c
Percurso - Extensão
Árvores Binárias
Consiste em visitar cada nó começando do nível mais baixo (ou mais alto) e movendo para baixo (ou para cima) nível a nível, visitando nós em cada nível da esquerda para a direita (ou da direita para esquerda).
Neste caso, já quatro situações distintas:
De cima para baixo, da esquerda para a direita (mais utilizado).
De cima para baixo, da direita para esquerda.
De baixo para cima, da esquerda para a direita.
De baixo para cima, da direita para a esquerda.
Vejamos os percursos na árvore a seguir:
a b c
a c b
b c a
c b a
a
b
c
Percurso - Extensão
Árvores Binárias
DE CIMA PARA BAIXO, DA DIREITA PARA A ESQUERDA:
Inicialmente, o nó raiz é colocado numa fila de nós.
Enquanto houver elementos na fila:
Retirar e listar o nó que está na cabeça da fila
Enfileirar os filhos do nó que foi retirado da fila.
Fila
Listagem
a
b
c
a
c
a
b
d
e
a
b
c
e
a
b
c
d
a
b
c
d
e
a
b
c
d
e
Custo de Manutenção
O custo de manutenção de tais árvores é alto, considerando que após cada operação de inserção ou remoção de nós as costuras devem ser ajustadas.
Considerando que o percurso em árvores é geralmente para listar os nós da esquerda para a direita, pode-se desconsiderar as amarras à esquerda. Neste caso, teríamos uma árvore costurada (no percurso adotado) à direita.
Neste caso, apenas os sucessores seriam interessantes para serem utilizados nas "amarras" ou "costuras".
No exemplo, temos uma árvore binária alinhada em pre-order à direita.
Árvores Alinhadas
4
2
6
1
5
3
Alocação
São utilizados dois campos adicionais (do tipo booleano) ao da árvore binária convencional, indicando se as referencias esquerda e direita são filhos (1) ou "costuras" (0).
No exemplo a seguir temos a representação de uma árvore binária costurada em pre-order, e a representação da sua alocação.
Árvores Alinhadas
4
2
6
1
5
3
4
1
1
2
1
1
6
1
0
1
0
0
3
0
0
5
0
0
T
ÁRVORES BINÁRIAS DE BUSCA
Definição
Busca
Inserção
Remoção
Por cópia
Por fusão
Exercícios
TAD
HEAP BINÁRIO
Motivação
Definição
Heap de máximo
Heap de mínimo
Inserção
Remoção
Respostas
5 2 8 1 4 6 3 7.
pre-order: 5 2 1 4 3 8 6 7
pos-order: 1 3 4 2 7 6 8 5
in-order: 1 2 3 4 5 6 7 8
Árvores Binárias de Busca
5
2
8
1
6
7
3
4
2
8
1
6
7
3
4
4
2
8
1
6
7
3
Remoção
CASO II:
EX.: Remover o nó que contém a chave 6 da árvore abaixo:
Árvores Binárias de Busca
4
2
6
1
7
3
4
2
7
1
3
Exercícios
Inserir em uma árvore binária de busca, na ordem em que aparecem, as seguintes chaves: 5 8 6 7 2 4 3 1 5 6 2 3.
Listar os nós da árvore do item a em extensão (de cima para baixo e da esquerda para a direita).
Listar os nós da árvore do item a em pre-order, pos-order e in-order.
Apagar, da árvore do item a, a chave 5, por fusão.
Apagar, da árvore do item a, a chave 5, por cópia.
Árvores Binárias de Busca
Remoção
CASO III (CÓPIA):
Na subárvore esquerda (direita) do nó V a ser deletado, localizar o nó X mais à direita (esquerda). A chave de X é copiada para V. O nó X é então removido da árvore seguindo um dos dois primeiros casos, dependendo do seu número de filhos (subárvores).
EX.: Remover o nó que contém a chave 4 da árvore abaixo:
Árvores Binárias de Busca
4
2
6
1
5
7
3
3
2
6
1
5
7
ÁRVORES
AVL
Motivação
Definição
Rotação
Simples
Dupla
Inserção
Remoção
Remoção
CASO I:
EX.: Remover o nó que contém a chave 5 da árvore abaixo:
Árvores Binárias de Busca
4
2
6
1
5
7
3
4
2
6
1
7
3
Remoção
A complexidade deste processo é proporcional à quantidade de filhos (subárvores) que o nó a ser removido tem. Desta forma, existem três casos.
Se o nó não possui filhos, ele é removido e o ponteiro de seu ascendente imediato (pai) é atualizado para nulo.
Se o nó possui apenas um filho, ele é removido e o ponteiro de seu ascendente imediato (pai) é atualizado para o seu filho.
Se o nó possui os dois filhos, o processo de remoção pode se dar basicamente de duas formas:
Por fusão
Por cópia
Árvores Binárias de Busca
Definição
São árvores binárias em que todas as chaves da subárvore esquerda de um vértice (nó) são menores que a chave dele; e, analogamente, todas as chaves da subárvore direita deste nó são maiores que a chave dele.
A busca de um elemento é proporcional à altura da árvore.
Árvores Binárias de Busca
4
2
6
(a)
1
5
7
3
1
3
(b)
2
Busca
Iniciando pela raiz da árvore. Para cada nó da árvore, comparar uma chave a ser localizada X com a chave do nó corrente V. Podem acontecer três situações:
Se X é igual à chave de V; retorne V.
Se X é menor que a chave de V; buscar X na subárvore esquerda de V.
Se X é maior que a chave de V; buscar X na subárvore direita de V.
A busca para quando X é encontrado, ou quando não há mais opções.
Árvores Binárias de Busca
4
2
6
1
5
7
3
EXEMPLO:
Para localizar o a chave 5. O nó corrente é, de início, a raiz.
5 é maior que 4. Continuar a busca pela direita.
5 é menor que 6. Continuar a busca pela esquerda.
5 é igual à chave do nó corrente. Parar a busca.
Busca
Fluxograma para localização de uma chave em uma árvore binária de busca:
Considere:
K = chave do nó atual
X = chave procurada
Árvores Binárias de Busca
Ir para a raiz
Vazia?
Chave não encontrada
X = K?
Ir para a subárvore esquerda
X < K?
Ir para a subárvore direita
Chave encontrada
S
S
N
N
S
N
Inserção
Para inserir uma chave X em uma árvore binária de busca, segue-se um processo semelhante ao de busca.
Se a árvore estiver vazia, inserir a chave na raiz.
Se a chave X for menor que a chave do nó corrente, inserir X na subárvore esquerda deste.
Se a chave X for maior que a chave do nó corrente, inserir X na subárvore direita deste.
Todo nó é inserido nas folhas da árvore.
Árvores Binárias de Busca
4
2
7
1
5
8
3
EXEMPLO:
Para inserir a chave 6 na árvore ao lado. O nó corrente é a raiz.
6 é maior que 4. Inserir na subárvore direita.
6 é menor que 7. Inserir na subárvore da esquerda.
6 é maior que 5. Inserir na subárvore da direita.
A subárvore está vazia. 6 deve ser a raiz desta.
6
Representação
Árvores Binárias
hierárquica
a
b
d
c
f
e
g
(a (b (d ()()) ()) (c (e (g () ()) ()) (f () ())))
parênteses aninhados
OBSERVAÇÕES:
Não é comum representar árvores binárias utilizando parênteses aninhados; uma vez que devem ser indicadas todas as subárvores de todos os nós (ainda que vazias). Nesta representação, o primeiro par de parênteses que segue uma chave de nó representa a subárvore esquerda deste; e o par de parênteses seguinte representa a subárvore direita.
Definição
ALTURA MÁXIMA E MÍNIMA:
A altura h de uma árvore binária com n nós está entre o valor de log2n como inteiro, arredondado para menos, e o valor de n. Logo: log2n h n - 1.
O pior caso acontece com as árvores degeneradas ou ziguezagues.
O melhor caso acontece com a árvore completa.
Árvores Binárias
(d)
(a)
(b)
(c)
OBSERVAÇÕES:
As árvores (a), (b) e (c) são chamadas de ziguezague.
As árvores (b) e (c) podem ser ainda chamadas de degeneradas à esquerda e à direita, respectivamente.
A altura de (a) é máxima
6 – 1 = 5.
A altura de (d) é mínima. log210 = 3.3219 = 3.
Definição
ÁRVORE ESTRITAMENTE BINÁRIA, COMPLETA E CHEIA
Uma árvore é estritamente binária se todos os seus nós possuem 0 ou 2 filhos.
Uma árvore é completa quando todas as suas folhas estão nos dois últimos níveis. Ou seja, se um nó não possui pelo menos uma das subárvores (esquerda ou direita), ele deve estar no último ou no penúltimo nível.
Uma árvore binária cheia é aquela em que, se v é um nó com alguma de suas subárvores vazias, então v se localiza no último nível.
Árvores Binárias
(a)
(b)
(c)
Aplicações
Distribuição dos cursos, nos Centros, dentro da Universidade
Árvores – Teoria geral
Aplicações
Tabela de jogos da copa do mundo de futebol de 2006
Árvores – Teoria geral
Aplicações
Generalização / Especialização
Árvore de diretórios
C:\
Documentos
Apostilas
Exercícios
Provas
Fotos
Pessoais
Paisagens
Musicas
MPB
Pop Rock
Eletrônica
Artista 01
Artista 02
Árvores – Teoria geral
Conceitos
CAMINHO:
Uma sequência de nós distintos v1, v2, ..., vk, tal que para cada nó (vértice) vi (i variando de 1 a k-1), vi é pai de vi+1.
Diz-se que v1 alcança vk, e que vk é alcançado por v1.
Um caminho de vk vértices é obtido pela sequência de k-1 pares. O valor k-1 é o comprimento do caminho.
EXEMPLO:
Na árvore ao lado:
adfh é um caminho cujo tamanho é 3.
acfh não é um caminho, pois c não é pai de f.
a
b
e
d
g
f
h
c
OBSERVAÇÕES:
Em um caminho, os nós que aparecem após um dado nó vi são chamados de descendentes ou sucessores de vi. Caso o nó apareça imediatamente após vi, este é chamado de filho de vi. Analogamente, nós que aparecem antes de vi são chamados de ancestrais ou antecessores de vi. O nó que aparece imediatamente antes de vi é chamado de pai de vi.
Árvores – Teoria geral
Aplicações
*
+
b
a
-
/
c
e
d
(a + b) * (c – d / e)
a + b * (c – d) / e
+
a
/
e
*
-
b
d
c
Árvores de Expressões
Árvores – Teoria geral
Alocação
ENCADEADA (ALOCAÇÃO DINÂMICA)
Alternativa mais adequada para a manipulação de árvores.
Cada nó possui um campo para guardar sua informação (chave), e campos de referência para suas subárvores.
O problema principal deste esquema é a possibilidade dos nós terem números diferentes de subárvores. A solução imediata é limitar o número de subárvores.
Árvores – Teoria geral
a
b
d
f
e
c
Alocação dinâmica da árvore ao lado.
a
.
.
.
b
/
/
/
c
/
/
/
d
.
.
/
e
/
/
/
f
/
/
/
Alocação
ADJACÊNCIA (ALOCAÇÃO ESTÁTICA)
Nesta modalidade, os nós da árvore são representados de forma sequencial na memória.
Os números que aparecem à direita da informação de cada nó indicam o grau do nó correspondente.
Não é conveniente para representar árvores, na maioria dos casos, devido às dificuldades que oferece para a manipulação da estrutura (inserções, remoções, busca etc).
Árvores – Teoria geral
a
b
d
f
e
c
a
3
b
0
c
0
d
2
e
0
f
0
Alocação sequencial da árvore ao lado.
Representação
hierárquica
a
b
e
d
g
f
h
c
(a (b (e)) (c) (d (f (h)) (g)))
parênteses aninhados
a
d
c
f
g
h
b
e
diagramas de inclusão
alinhamento dos nós
(barras)
a
b
e
c
d
f
h
g
Árvores – Teoria geral
ÁRVORES
Motivação
Definição
Representação
Alocação
Exemplos
Principais Conceitos
Caminho
Altura, Nível e Grau de um nó
Árvore ordenada
Árvores isomorfas
Árvore cheia
Motivação
As listas ligadas fornecem usualmente maior flexibilidade que as matrizes, mas são estruturas lineares e é difícil utilizá-las para uma representação hierárquica de objetos.
Embora as pilhas e filas reflitam-se em alguma hierarquia, elas são limitadas a somente uma dimensão.
Para superar estas limitações, introduzimos um novo tipo abstrato de dados chamado de árvore.
Árvores admitem tratamento computacional eficiente quando comparadas às estruturas mais genéricas como os grafos (mais flexíveis e complexos).
Exemplos de utilização de árvores:
Organização de pastas de um computador (árvore de diretórios)
Organogramas
Árvores de decisão
Resolução de expressões aritméticas
Tabela de um campeonato de futebol
Árvores – Teoria geral
Definição
Diferente de uma árvore natural, as árvores do tipo abstrato são representadas de cima para baixo, com a raiz no topo e as folhas na base. A raiz é um nó que não tem ancestrais; ele só pode ter filhos. As folhas, por outro lado, não possuem filhos.
Em uma definição mais formal, uma árvore não vazia consiste em um conjunto de nós, onde:
Existe um nó raiz.
Todo nó possui exatamente um pai, exceto o raiz, que não possui pai e que é ancestral de todos os demais nós.
Os nós que não possuem filhos são chamados de folhas ou terminais.
Se o conjunto de nós é vazio, dizemos que a árvore é vazia.
Um conjunto de árvores disjuntas forma uma floresta.
Os filhos de um nó são sub-árvores deste.
Árvores – Teoria geral
Exemplos
árvore vazia
(a)
(b)
(c)
(d)
(e)
(f)
(g)
As figuras (a), (b), (c), (d), (e) e (f) são árvores. Já a figura (g) não é uma árvore, pois existe um nó com mais de um pai
Árvores – Teoria geral
Conceitos
ALTURA:
A altura de um nó vi é o maior caminho deste até uma folha.
Se o nó vi é uma folha, sua altura é zero.
A altura de uma árvore é calculada pela altura de sua raiz.
Uma árvore vazia tem altura -1.
EXEMPLO:
Na árvore ao lado:
a altura da árvore é 3.
a altura do nó h é 0.
a altura do nó d é 2.
a
b
e
d
g
f
h
c
OBSERVAÇÕES:
Para alguns autores, a altura é calculada pela quantidade de nós do maior caminho do nó em questão até uma folha. Considerando zero a altura de uma árvore vazia.
Árvores – Teoria geral
Remoção
CASO III (FUSÃO):
Na subárvore esquerda (direita) do nó V a ser deletado, localizar o nó X mais à direita (esquerda). X passa a ser pai da subárvore direita (esquerda) de V. A raiz da subárvore esquerda (direita) de V assume o lugar dele. Em seguida, o nó V é removido.
EX.: Remover o nó que contém a chave 4 da árvore abaixo:
Árvores Binárias de Busca
4
2
6
1
5
7
3
2
1
3
6
5
7
Conceitos
NÍVEL:
O nível, ou profundidade, de um nó vi é o comprimento do caminho da raiz até o nó em questão.
Se vi é a raiz da árvore, seu nível é 0.
Formalmente definindo, o nível de vi é 0, se vi é a raiz da árvore. Caso contrário, o nível de vi é 1 + n, onde n é o nível do pai de vi.
EXEMPLO:
Na árvore ao lado:
o nível do nó a é 0.
o nível dos nós b, c e d é 1.
o nível do nó h é 3.
a
b
e
d
g
f
h
c
OBSERVAÇÕES:
Para alguns autores, o nível é contado pela quantidade de nós visitados da raiz até o nó em questão. Neste caso, o nível da raiz é 1.
nível 0
nível 1
nível 2
nível 3
Árvores – Teoria geral
Conceitos
ÁRVORE CHEIA:
Uma árvore de grau g está cheia se todos os seus nós não terminais estão com o número máximo (g) de filhos, e se as folhas estão no mesmo nível.
Uma árvore de grau g está cheia se todos os seus níveis estão com a quantidade máxima de nós.
A quantidade máxima de nós de um nível n de uma árvore de grau g é gn.
Uma árvore de grau g e altura h tem no máximo (gh+1 – 1) / (g - 1) nós.
Árvores – Teoria geral
(b)
(a)
Conceitos
SUBÁRVORE E SUBÁRVORE PARCIAL:
Seja T uma árvore, e v um nó de T. Seja Tv a subárvore de T de raiz v. Seja S um conjunto de elementos de Tv. T' = Tv – S é uma subárvore parcial de T.
Observe que a diferença entre uma subárvore de raiz v e uma subárvore parcial de raiz v é que a primeira contém obrigatoriamente todos os descendentes de v; enquanto que a segunda, não necessariamente.
Árvores – Teoria geral
a
b
c
(a)
d
f
e
g
b
(b)
d
f
b
d
(c)
EXEMPLO:
A árvore (b) é uma subárvore da árvore (a).
A árvore (c) é uma subárvore parcial da árvore (a).
ÁRVORES BINÁRIAS
Definição
Árvore binária
Árvore estritamente binária
Árvore completa
Altura máxima e mínima
Representação
Alocação
Percurso
Largura
Profundidade
Conversão para árvore binária
Definição
ÁRVORES BINÁRIAS:
São estruturas do tipo árvore, onde o grau de cada nó é menor ou igual a 2.
Distinguem-se as subárvores de um nó entre subárvore da direita e subárvore da esquerda. Assim, se o grau de um nó for igual a 1, deve ser especificado se a sua subárvore é a da esquerda ou a da direita.
Se T é uma árvore binária com altura h e n nós, então: 2h + 1 – 1 n h + 1.
Árvores Binárias
a
b
c
(a)
d
e
f
a
b
c
(b)
d
e
f
OBSERVAÇÕES:
Uma árvore binária pode conter as duas subárvores (direita e esquerda) vazias; o que não ocorre no caso geral.
Toda árvore binária não vazia com n nós possui exatamente n+1 subárvores vazias.
As árvores (a) e (b) ao lado, ainda que vistas como ordenadas, são isomorfas. Mas, como binárias, são distintas.
Conceitos
ÁRVORES ISOMORFAS:
De uma forma geral, duas árvores não ordenadas são isomorfas quando puderem se tornar coincidentes através de uma permutação na ordem das subárvores de seus nós. Duas árvores ordenadas são isomorfas somente se forem coincidentes.
Árvores – Teoria geral
a
c
b
(a)
d
f
e
i
g
h
a
c
b
(b)
d
f
e
i
h
g
EXEMPLO:
As árvores (a) e (b) não são ordenadas. Se permutarmos os nós b e c, e e f, g e h; elas ficam coincidentes. Portanto, são isomorfas.
Conceitos
ÁRVORE ORDENADA X ORIENTADA:
Quando a ordem das subárvores de cada nó é significativa, dizemos que a árvore é ordenada. Neste caso, pode-se falar em primeira subárvore, segunda subárvore etc. Geralmente a ordenação se dá da esquerda para a direita.
Quando a ordem das subárvores não é relevante, dizemos que a árvore é orientada, uma vez que apenas a orientação dos nós é importante.
Árvores – Teoria geral
EXEMPLO:
Se considerarmos que as árvores (a) e (b) são ordenadas, elas são distintas. Entretanto, se considerarmos que elas são apenas orientadas, elas são iguais.
a
b
c
(a)
d
f
e
g
(b)
a
c
b
g
e
f
d
Conceitos
Calcule o grau, nível e altura de cada um dos vértices da árvore a seguir:
a
b
e
d
g
f
h
c
VÉRTICE
GRAU
NÍVEL
ALTURA
a
3
0
3
b
1
1
1
c
0
1
0
d
2
1
2
e
0
2
0
f
1
2
1
g
0
2
0
h
0
3
0
Árvores – Teoria geral
Conceitos
GRAU:
O grau de saída, ou apenas grau, de um nó vi é a quantidade de filhos dele.
O grau de uma árvore é o maior valor de grau de seus vértices.
EXEMPLO:
Na árvore ao lado:
o grau do nó a é 3.
o grau do nó h é 0.
o grau da árvore é 3.
a
b
e
d
g
f
h
c
OBSERVAÇÕES:
Não convém falar em grau de entrada de um vértice em árvore, uma vez que este é sempre 1 para todos os vértices; com exceção do raiz, que tem grau de entrada 0. Portanto, quando se fala em grau de um vértice, deve-se considerar o grau de saída deste.
Árvores – Teoria geral
28/5/2009
nº
Clique para editar o estilo do título mestre
Clique para editar os estilos do texto mestre
Segundo nível
Terceiro nível
Quarto nível
Quinto nível
nº
Clique para editar os estilos do texto mestre
Segundo nível
Terceiro nível
Quarto nível
Quinto nível
28/5/2009
Clique para editar o estilo do título mestre
3
5
37
38
39
40
Clique para editar o estilo do título mestre
Clique para editar os estilos do texto mestre
Segundo nível
Terceiro nível
Quarto nível
Quinto nível
28/5/2009
nº
nº
Clique para editar o estilo do título mestre
Clique no ícone para adicionar uma imagem
Clique para editar os estilos do texto mestre
28/5/2009
Clique para editar o estilo do título mestre
Clique para editar os estilos do texto mestre
Clique para editar os estilos do texto mestre
Segundo nível
Terceiro nível
Quarto nível
Quinto nível
nº
28/5/2009
Clique para editar o estilo do subtítulo mestre
28/5/2009
nº
Clique para editar o estilo do título mestre
Clique para editar o estilo do título mestre
28/5/2009
nº
Clique para editar os estilos do texto mestre
Segundo nível
Terceiro nível
Quarto nível
Quinto nível
Clique para editar os estilos do texto mestre
28/5/2009
nº
Clique para editar o estilo do título mestre
Clique para editar o estilo do título mestre
28/5/2009
nº
Clique para editar os estilos do texto mestre
Segundo nível
Terceiro nível
Quarto nível
Quinto nível
Clique para editar os estilos do texto mestre
Segundo nível
Terceiro nível
Quarto nível
Quinto nível
Clique para editar os estilos do texto mestre
Clique para editar os estilos do texto mestre
28/5/2009
Clique para editar os estilos do texto mestre
Segundo nível
Terceiro nível
Quarto nível
Quinto nível
Clique para editar os estilos do texto mestre
Segundo nível
Terceiro nível
Quarto nível
Quinto nível
nº
Clique para editar o estilo do título mestre
Clique para editar o estilo do título mestre
28/5/2009
nº
28/5/2009
nº
41
28/5/2009
Clique para editar os estilos do texto mestre
Segundo nível
Terceiro nível
Quarto nível
Quinto nível
nº