Buscar

árvore (1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ÁRVORE 
 
Introdução 
 
Anteriormente vimos a organização dos dados de uma maneira linear, onde a propriedade 
básica é a relação sequencial mantida entre os seus elementos . 
 Agora, veremos outra forma de organizar os dados chamados genericamente de 
não linear. Essa forma permite que outros tipos de relação entre dados possam ser 
representados como por ex. a relação de hierarquia uma árvore pode ser definida como 
sendo um conjunto finito de um ou mais nós da esquerda 
1º existe um nó denominado raiz da árvore 
2º os demais nós tornam subconjuntos (separados) onde cada um desses subconjuntos é 
uma árvore. 
A
B C D
F G H
I J K
folhas
folhas/nó terminal
nó terminal
filhos de C
raiz
nó da raiz da sub
árvore
filho de D
filhos de H
figura 1
 
 
Podemos generalizar a estrutura de uma árvore como sendo: 
 
1º cada nó tem somente um nó ascendente imediato ( denominado pai ) 
2º Cada nó pode mais de nó descendente imediato ( denominado filho ). 
3º Nós filhos de mesmo pai são denominados irmãos 
4º O grau de um nó é o número de subárvores de um nó, ou seja, é o n.º de nós filhos 
ligados imediatamente ao nó. 
5º O grau de uma árvore é o maior dos graus de seus nós 
6º Nós de grau 0 (zero ) isto é sem descendentes são chamadas de folhas ou nós terminais. 
7º Os antepassados de um nó são todos ao longo do caminho da raiz até o respectivo nó. 
8º O nível de um nó é o comprimento do que vai da raiz ao nó, isto é, o nº de linhas que 
liga à raiz. 
9º O maior dos níveis dos nós de uma árvore é altura (ou profundidade) da árvore. 
10º Floresta é um conjunto de árvores disjuntas (separadas) exemplos de estruturas que 
não são árvores. 
A
B
C D
A
B C
D
E F
A
B C
H
D
E F
G
 
 
 
 
 
 
 
 
 
 
 
 
 
2 
 
Representação das Árvores 
 A árvore da figura 1 pode ser representada por: 
 
A) DIAGRAMA DE VENN 
A B
C
F
H
G I J J
D
 
 
 
B) REPRESENTAÇÃO LINEAR 
 (A (B,C (F,G), D (H (I,J,K)))) 
 
C) REPRESENTAÇÃO DECIMAL DE DEWEY 
 
A 
 B 
 C 
 F 
 G 
 D 
 H 
 I 
 J 
 K 
 
D) REPRESENTAÇÃO ITEMIZADA 
1A; 1.1B; 
 1.2.C; 1.2.1.F; 
 1.2.2.G; 
 1.3.D;1.3.1.H; 1.3.1.I; 
 1.3.1.2.J; 
 1.3.1.3.K; 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3 
ÁRVORES BINÁRIAS 
 
DEFINIÇÃO: 
 
 Uma árvore binária se caracteriza pelo fato de todos os seus nós terem no máximo 
duas subárvores, ou seja, é uma árvore de graus dois. As duas subárvores de cada nó são 
denominadas subárvore esquerda e subárvore direita. 
 Como forma de representação física de uma árvore binária utilizaremos a alocação 
sequencial. 
O primeiro passo ser adotado será a alocação de espaço em memória suficiente 
para a estrutura. Esse espaço é dimensionado de tal forma que seja possível representar 
uma árvore completa. Uma árvore binária completa de altura K tem ( 2 ( K+1) ) - 1 nós, 
ou seja, todos os nós possuem dois filhos, exceto as folhas, que necessariamente estão no 
nível K. 
1
2 3
4 5 6 7
8 9 10 11 12 13 14 15
Figura 1 - ÁRVORE BINÁRIA COMPLETA 
 
 Na figura 1, representação uma árvore binária completa de altura 3 e numeramos 
sequencialmente os nós a partir do nível 0 (zero), da esquerda para direita. 
 Dessa forma, os nós agora podem ser armazenados em uma lista sequencial, onde 
cada nó i da árvore ocupa o i-ésimo nó da lista. A partir da numeração também 
conseguimos a posição de qualquer nó relacionado diretamente ao nó de uma árvore 
binária de n nós: 
1- O pai de i está em [i/2], sendo i <=1. Se i = 1, i é a raiz e não possui pai. 
2- O filho à esquerda de i está em 2i, se 2i <=n. Se 2i > n, então i não tem à esquerda. 
3- O filho à direita de i está em 2i + 1 <= n. Se 2i + 1 > n, então i não tem filho à direita. 
A
B C
D E F G
Figura 2 - ÁRVORE BINÁRIA COM ALOCAÇÃO SEQUENCIAL
A B C D E F G
 
 
 Esse tipo de alocação é muito interessante para árvore binárias completas, em uma 
árvore binária qualquer (incompleta), porém, haverá desperdício de espaço. Essa situação 
é facilmente observada analisando a alocação de uma árvore binária assimétrica com 
assimetria à esquerda, isto é, uma árvore binária em que nenhum de seus nós possui 
subárvore à direita. 
 
 
 
 
 
 
 
 
 
 
 
 
 
4 
Para este tipo de árvore binária com altura K, embora (2 (k+1))- 1 nós sejam alocados, 
apenas k+1 são 
A
B
C
Figura 3 - ÁRVORE BINÁRIA ALOCADA SEQUENCIALMENTE
A B - C - - -
 
 
 Outra forma de representação física de uma árvore binária por alocação sequencial 
consiste em subdividir o espaço de um nó em 3 campos: 
 
NÓ POSIÇÃO SUBÁRV.ESQ. POSIÇÃO SUBÁRV.DIR.
 
 
 Figura 4 - FORMATO DE UMNÓ DA ÁRVORE BINÁRIA SEQUENCIAL 
 
A árvore da figura 3 , ficaria representada por : 
A 2 0 B 0 0 C 0 0 
Podemos ver, porém que duas representações mostradas, os problemas inerentes à 
alocação sequencial persistem, isto é, a necessidade de alocarmos todo o espaço necessário 
para a estrutura e a dificuldade de manipulação dessa estrutura. 
 Para evitarmos tais problemas, utilizaremos a alocação encadeada, onde cada nó 
possui o seguinte formato: 
LINKESQ INFO LINKDIR 
 Onde LINKESQ. É o link do nó que contém o endereço da subárvore à esquerda e 
LINKDIR. Contém o endereço da subárvore à direita. 
 
 
 
 
 
 
 
 
 
5 
PERCURSO 
 
O percurso em uma árvore binária consiste em processar de forma sistemática e ordenada 
cada nó da árvore apenas uma vez, obtendo assim uma sequência linear dos nós. Nessa 
sequência, cada nó passa a ter um antecessor e um sucessor. 
A
B C
D FE G
 PTRAIZ
FIG.5 - ÁRVORE BINÁRIA ENCADEADA
 
 
PRÉ-ORDEM 
 Utiliza a raiz; 
 Percorre a subárvore esquerda em pré-ordem; 
 Percorre a subárvore direita em pré-ordem; 
 
ORDEM 
 Percorre a subárvore esquerda em ordem simétrica; 
 Utiliza a raiz; 
 Percorre a subárvore direita em ordem simétrica 
 
PÓS-ORDEM 
 Percorre a subárvore esquerda em pós-ordem; 
 Percorre a subárvore direita em pós-ordem; 
 Utiliza a raiz; 
 
Ex. 
A
B C
D E F G
 
 
PRÉ-ORDEM = A B D E C F G 
ORDEM = D B E A F C G 
PÓS-ORDEM = D E B F G C A 
 
 É interessante notar que, analisando os percursos definidos anteriormente, a 
simples troca de sentido 
( esquerda  direita ). Define três novas sequências lineares. A essa maneira “inversa” 
de percorrer uma árvore binária chamamos de “percurso inverso”. As seguintes sequências 
são obtidas utilizando esses novos percursos na árvore.

Outros materiais