Академический Документы
Профессиональный Документы
Культура Документы
rvores
As listas encadeadas usualmente fornecem maior flexibilidade que as matrizes, mas so estruturas lineares e difcil us-las para organizar uma representao hierrquica de objetos. As pilhas e as filas apresentam hierarquia limitada a uma dimenso. Para superar essa limitao as rvores so estruturas prprias para a representao de hierarquia. As rvores consistem de ns e arcos. As rvores so representadas de cima para baixo com a raiz no topo e as folhas na base.
rvores
Uma rvore T um conjunto finito e no-vazio de ns T= {r} T1 T2 . . . Tn, com as seguintes propriedades:
1. 2.
um n especial da rvore, r, chamado de raiz da rvore; e o restante dos ns particionado n 0 subconjuntos, T1 , T2 , , Tn , cada um dos quais sendo uma rvore.
A definio de uma rvore recursiva, uma rvore definida em termos dela mesmo.
No h o problema de recurso infinita porque toda rvore tem um nmero finito de ns e no caso base uma rvore tem n=0 subrvores. Uma rvore minimal composta de um nico n, a raiz.
rvores
D
B
A C
I Ta Tb
K Tc
rvores
O grau de um n o nmero de subrvores do n.
A definio de uma rvore no impem qualquer condio sobre o nmero de filhos de um n. O nmero de filhos de um n pode variar de 0 a qualquer inteiro.
rvores
Duas razes ri e rj das subrvores distintas Ti e Tj de Ti so ditas irms. Dada uma rvore T que contm um conjunto de ns, um caminho em T definido como uma seqncia no vazia de ns ou arcos P={r1, r2,, rk} para 1 i k tal que o i-simo n da seqncia, ri, o pai do (i+1)-simo n da seqncia ri+1. O nmero de arcos em um caminho chamado de comprimento do caminho P e definido por k-1.
rvores
D
Na rvore T h 29 caminhos diferentes incluindo os caminhos de comprimento 0; os caminhos de comprimento 1, e os caminhos de comprimento 3.
rvores
O nvel ou profundidade de um n ri R da rvore T o comprimento do nico caminho em T entre a raiz r e o n ri .
rvores
Uma rvore pode ser representada como um conjunto de reunies aninhadas no plano (Diagrama de Venn).
D E F G H J M
rvores N-rias
Uma variao de rvores na qual todos os ns tm exatamente o mesmo grau.
No possvel construir uma rvore com um nmero finito de ns, todos com o mesmo grau N, exceto se N=0. Uma rvore N-ria T um conjunto finito de ns com as seguintes propriedades:
1. 2.
O conjunto vazio, T=; ou O conjunto consiste numa raiz, R, e exatamente N rvores N-rias distintas. Os ns remanescentes podem ser particionados em N 0 subconjuntos, T0, T1,, TN-1, cada um deles uma rvore N-ria tal que T={R, T0, T1,, TN-1 }.
rvores N-rias
A rvore vazia T= uma rvore, um objeto do mesmo tipo que a rvore no vazia.
Num projeto orientado a objetos, uma rvore vazia deve ser a instncia de alguma classe de objetos.
As rvores vazias so chamadas de ns externos por no possurem subrvores e por isso aparecem nas extremidades das rvores.
rvores ternrias
A
C B
D E
G
H I K
J
L
rvores N-rias
Os quadrados representam rvores vazias e os crculos denotam os ns no vazios. As rvores cujas subrvores esto ordenadas so rvores ordenadas. As rvores cuja ordenao no importante so chamadas de rvores orientadas.
rvores Binrias
Uma rvore binria uma rvore N-ria para a qual N=2. Uma rvore binria T um conjunto finito de ns com as seguintes propriedades:
1. 2.
O conjunto vazio, T=; ou O conjunto consiste em uma raiz, r, e em exatamente duas rvores binrias distintas TL e TR, T={r, TL , TR}.
A rvore TL dita a subrvore da esquerda e a rvore TR dita a subrvore da direita. Uma rvore binria com n 0 ns internos contm n+1 ns externos, pois uma rvore N-ria contm (N-1)n+1 ns externos.
Percurso em rvores
Grande parte dos algoritmos para a manipulao de rvores tm a caracterstica comum de visitar sistematicamente todos os ns das rvores. O processo de visitao dos ns da rvore chamado de percurso em rvore.
percurso em largura.
Percurso em profundidade
Alguns percursos em profundidade possuem nomes especficos:
percurso em pr-ordem,
percurso em ps-ordem e percurso em ordem simtrica.
A B C E D H
Percurso em profundidade
Percurso em pr-ordem
na ordem definida.
Ex: A, B, C, D, E, F, G, H, I
Percurso em profundidade
Percurso em ps-ordem
A B C F E G I D H
Ex: C, B, F, G, E, I, H, D, A
Percurso em profundidade
Percurso em Ordem Simtrica (in-ordem)
O n raiz visitado entre as visitas das subrvores esquerda e direita. O percurso s faz sentido em rvores binrias.
1. Percorra a subrvore esquerda. 2. Visite o n raiz. 3. Percorra a subrvore direita.
A B C E D H
Ex: B, C, A, F, E, G, D, I, H
nvel 0
nvel 1
nvel 2 nvel 3
Ex: A, B, D, C, E, H, F, G, I
Exerccios
A B D E I M a) b) c) d) e) f) N F J C G K H L
Quais ns so folhas. Qual o n raiz. Que n pai de C. Quais so os filhos de C. Quais so os antecessores de E. Quais os sucessores de E. Qual a profundidade de C. Qual a altura de C. Quantos caminhos diferentes existem. Quais so eles. Liste os ns em Preorder, Inorder, Postorder.
13 10 2 12 20 29 25 31
Essa caracterstica importante pois pode ser difcil prever quantos ns devem ser criados.
Normalmente uma estrutura de dados dinmica o modo mais eficiente de representar uma rvore. Numa estrutura de dados dinmica um n instncia de uma classe composta por um membro de informao e dois ponteiros que apontem para as subrvores direita e esquerda.
rvores de Busca
So rvores que suportam operaes eficientes de busca, insero e remoo. A rvore armazena um nmero finito de chaves a partir de um conjunto de chaves K totalmente ordenado.
Cada n na rvore contm pelo menos uma chave e todas as chaves so diferentes.
Numa rvore de busca h um critrio de ordenao de dados.
As chaves em cada n so distintas e ordenadas: ki < ki+1 para 1 i n1. Todas as chaves das subrvores Ti-1 so menores do que ki . A rvore Ti-1 dita a subrvore da esquerda em relao a ki . Todas as chaves das subrvores Ti+1 so maiores do que ki . A rvore Ti+1
2.
3.
M=4
5,7
rvore vazia
Todas as chaves da subrvore TL so menores do que r . A rvore TL dita a subrvore da esquerda em relao a r . Todas as chaves da subrvore TR so maiores do que r . A rvore TR dita a subrvore da direita em relao a r .
2.
Para cada n compare a chave a ser localizada com o valor armazenado no n correspondente. Se a chave for menor v para a subrvore esquerda.
13 10
2 12 20 29 25 31
{
Se n_node < c_node c_node = filho esquerdo de c_node
20
15 4 17 20 4
15 20 17 19
Se a insero de um mesmo elemento for necessria deve-se indicar a deciso a ser tomada em funo da aplicao.
O n tem um filho.
O ponteiro de seu ascendente ajustado para apontar para o filho do n e o n removido.
13 10 2 25 10 2
13 25
20
O n tem um filho.
13 10 2 20 25 2 10
13
20
Uma rvore extrada de duas subrvores do n e esta rvore anexada ao ascendente do n. Os valores da subrvore direita so maiores do que os valores da subrvore esquerda. Na subrvore da esquerda o n com o maior valor deve tornar-se ascendente da subrvore direita. O n com o maior valor na subrvore da esquerda o n mais direita desta subrvore. Este n pode ser encontrado movendo-se ao longo da subrvore e tomandose sempre os ponteiros direitos at encontrar-se o valor nulo. Simetricamente na subrvore da direita o n com o menor valor deve tornar-se um ascendente da subrvore esquerda.
13 10
11 20 24
18
26
N procurado
1 2 3 4 5 6
node
tmp
3
Pode-se substituir a chave que est sendo removida pelo seu predecessor (ou sucessor) imediato. O predecessor de chave a chave do n mais direita na subrvore da esquerda. Analogamente, seu sucessor imediato a chave do n mais esquerda na subrvore da direita. Localiza-se o predecessor a partir da raiz da subrvore esquerda e movendose para direita o tanto quanto possvel at encontrar o valor nulo. Substitui-se a chave do predecessor pelo n a ser removido. Dessa forma o n se transforma em uma folha ou antecessor de apenas um filho no vazio.
24
26
N procurado
prev=tmp;
tmp=tmp->right; } node->key = tmp->key; if (prev->node==0) prev->left = tmp->left; else prev->right = tmp->left; } delete tmp;
3 4 5
Exerccios
Sobre rvores binrias de pesquisa:
a) b)
Qual a principal propriedade deste tipo de rvore? Desenhe a rvore binria de pesquisa que resulta da insero sucessiva das chaves QUESTAOFCIL em uma rvore inicialmente vazia. Represente a rvore sob a forma de matriz.(slide 22) Desenhe as rvores resultantes das retiradas dos elementos E e depois U da rvore do item anterior por fuso. Desenhe as rvores resultantes das retiradas dos elementos E e depois U da rvore do item anterior por cpia.
c) d) e)