Академический Документы
Профессиональный Документы
Культура Документы
Uma rvore uma estrutura de dados no linear frequentemente utilizada para rpido acesso aos dados. Nota-se que a recurso utilizada como ferramenta de definio. Um rvore uma estrutura sofisticada cuja definio por meio de recurso elegante e eficaz. Uma rvore, com tipo T, pode ser definida recursivamente da seguinte forma:
Uma rvore (estrutura) vazia ou Um n do tipo T associado a um nmero finito de estruturas disjuntas de rvore do mesmo tipo T, denominadas subrvores
A C B D G H E F I
Se um n X a raiz de uma rvore e um n Y a raiz de sua subrvore direita ou subrvore esquerda, ento X o pai de Y e Y o filho de X. O n X um ancestral do n Y (e Y descendente de X) se X for o pai de Y ou ento se X for o pai de algum ancestral de Y. Dois ns so irmos se forem filhos do mesmo pai.
O grau de um n determinado pelo nmero de filhos (imediatos) deste n. Portanto, o grau de uma folha zero. O grau de uma rvore determinado pelo grau mximo entre todos os ns desta rvore.
Grau 3 2 1 3 1 0 0 1 0 0 0 0
O grau da rvore 3.
A
A B C D E
F G H I J
K L
A profundidade ou altura de uma rvore significa o nvel mximo de qualquer folha na rvore, ou seja, o tamanho do percurso mais distante da raiz at qualquer folha. No exemplo, a rvore possui altura 3.
O nmero mximo de ns N(h,d) em uma rvore de altura h atingido quando todos os ns possurem d subrvores, exceto os de nvel h, que no possuem subrvores Para uma rvore de grau d
Nvel Nvel Nvel ... Nvel 0 contm um n (raiz) 1 contm d descendentes da raiz 2 contm d2 descendentes i contm di descendentes
Assumindo d=3
Nvel Nvel Nvel Nvel 0 1 2 3 30 31 32 33 = = = = 1 n (raiz) 3 ns 9 ns 27 ns
h h ... d N ( h, d ) d i d 0 d 1 i 0
Uma rvore ordenada uma rvore na qual os ramos de cada n so ordenados. Essas duas rvores ordenadas so distintas.
A B C D B A D C
10
rvores binrias so rvores ordenadas de grau 2. Uma rvore binria um conjunto finito de ns que:
ou vazia; ou consiste de uma raiz e duas rvores binrias disjuntas: subrvore esquerda e subrvore direita.
A Subrvore esquerda B D C
Subrvore direita
B (i) (ii)
B
D
(iii)
11
Uma rvore estritamente binria aquela que tem ns que possuem 0 ou dois filhos. Ns interiores (ns que no so folhas) possuem sempre 2 filhos.
A B C
Uma rvore binria completa aquela que estritamente binria de nvel d e com todos os ns-folhas no mesmo nvel d.
A B C
12
Uma rvore binria dita balanceada se, para cada n, as alturas de suas duas subrvores diferem de, no mximo, 1.
A B C
Uma rvore binria perfeitamente balanceada se, para cada n, os nmeros de ns das suas duas subrvores diferem de, no mximo, 1. Toda rvore perfeitamente balanceada balanceada, mas no vale o inverso.
13
n=2 n=1
n=3
n=4
n=5
n=6
n=7
Implementao:
sequencial; encadeada: alocao esttica ou dinmica.
Cada n em uma rvore binria possui um campo de dados, um ponteiro para a subrvore esquerda e um ponteiro para a subrvore direita.
14
Campo de dados
15
raiz
A A B C B C
D D
16
Pr-ordem: A, B, D, H, E, C, F, I, G
A
In-ordem: H, D, B, E, A, I, F, C, G
A
17
Ps-ordem: H, D, E, B, I, F, G, C, A
A
+ * c
18
Se rvore vazia, fim. processar a raiz percorrer em pr-ordem a subrvore esquerda percorrer em pr-ordem a subrvore direita
Se rvore vazia, fim. percorrer em in-ordem a subrvore esquerda processar a raiz percorrer em in-ordem a subrvore direita
19
Se rvore vazia, fim. percorrer em ps-ordem a subrvore esquerda percorrer em ps-ordem a subrvore direita processar a raiz
void pre_ordem(struct no *raiz) { if(raiz != NULL){ printf("%d ", raiz->info); pre_ordem(raiz->esq); pre_ordem(raiz->dir); } }
20
void in_ordem(struct no *raiz) { if(raiz != NULL){ in_ordem(raiz->esq); printf("%d ", raiz->info); in_ordem(raiz->dir); } }
void pos_ordem(struct no *raiz) { if(raiz != NULL){ pos_ordem(raiz->esq); pos_ordem(raiz->dir); printf("%d ", raiz->info); } }
21
Uma rvore de busca binria ou vazia ou seu n raiz contm uma chave e:
todas as chaves da subrvore esquerda so menores que a chave da raiz; todas as chaves da subrvore direita so maiores que a chave da raiz; as subrvores esquerda e direita tambm so rvores de busca binrias.
7
Profa. Dra. Jaquelline Brigladori Pugliesi
22
FIM
Profa. Dra. Jaquelline Brigladori Pugliesi
23