Anda di halaman 1dari 30

AULA - RVORE B E SEU B ALANCEAMENTO

Felipe Pinheiro Correia


Faculdade Paraso - Cear

Aula de Avaliao

Dezembro 2012

R OTEIRO

DA

AULA

1 2

Breve Reviso rvores de Busca Geral


1 2 3 4

rvores de Busca Multidirecionais rvore B Busca em uma rvore B Insero em uma rvore B

Referncias

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

1/29

B REVE R EVISO
Se a probabilidade de pesquisar uma chave em uma tabela for a mesma para todas as chaves, uma rvore binria balanceada determina a busca mais eciente Caminho de uma rvore sequncia de arcos, com origem na raiz e nal em um determinado n Nvel de determinado n tamanho do caminho da raiz at determinado n mais um, que representa o nmero de ns no caminho Altura de uma rvore binria nvel mximo de suas folhas rvore binria balanceada (rvore AVL) as alturas das duas subrvores de todo n nunca diferem em mais de um Balanceamento de um n a altura de sua subrvore da esquerda menos a altura de sua subrvore a direita Manuteno do balanceamento feita por meio de rotaes

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

2/29

B REVE R EVISO

Figura: rvore Binria Balanceada.

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

3/29

RVORES

DE

B USCA G ERAL

As rvores de busca geral (no binrias) so tambm usadas como tabelas de pesquisa, principalmente em armazenamento externo Categorias desse tipo de rvore:
rvores de busca multidirecionais rvores de busca digitais

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

4/29

RVORES

DE

B USCA M ULTIDIRECIONAIS

Cada n contm uma ou mais chaves rvore de busca multidirecional de ordem n cada n tem n ou menos subrvores e contm uma chave a menos que a quantidade de subrvores Se s0 , s1 , ..., sn1 forem as n subrvores de um n contendo as chaves k0 , k1 , ..., kn2 , em ordem ascendente, todas as chaves na subrvores sj (em que j est entre 1 e n 1) so maiores que kj 1 e menores que kj e todas as chaves na subrvore sn1 so maiores que kn2 A subrvore sj 1 chamada subrvore esquerda da chave kj 1 e sua raiz chamada lho esquerdo da chave kj 1 De modo semelhante, sj chamada subrvore direita e sua raiz de lho direito de kj 1 Um ou mais subrvores de um n podem estar vazias

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

5/29

RVORES

DE

B USCA M ULTIDIRECIONAIS

Figura: rvore Multidirecional de ordem 4.

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

6/29

RVORES

DE

B USCA M ULTIDIRECIONAIS

Ns completos ns que contm o nmero mximo de subrvores e o nmero mximo de chaves Semifolha n com pelo menos uma subrvore vazia rvore de busca direcional de cima para baixo caracterizada pela condio de que qualquer n incompleto um n folha Numa rvore multidirecional de cima para baixo, uma semifolha precisa ser ou completa ou um folha

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

7/29

RVORES

DE

B USCA M ULTIDIRECIONAIS

Figura: rvore Multidirecional de cima para baixo de ordem 3


Felipe P. Correia (FAP) rvore B e seu Balanceamento 8/29

RVORES

DE

B USCA M ULTIDIRECIONAIS

rvore Multidirecional Balanceada todas as folhas (que tambm so semifolhas) esto no mesmo nvel A rvore da gura a seguir no rvore de cima para baixo porque existem quatro ns com apenas uma chave e que no so ns folha As rvores das duas guras anteriores no esto balanceadas

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

9/29

RVORES

DE

B USCA M ULTIDIRECIONAIS

Figura: rvore Multidirecional balanceada.

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

10/29

RVORE B
Uma rvore de busca multidirecional e balanceada, de ordem n, na qual cada n no-raiz contm pelo menos n/2 chaves, chamada de rvore B de ordem n Uma propriedade importante de uma rvore B o tamanho de cada n, que pode ser to grande quanto o tamanho de um bloco. Alm disso, ela possui as seguintes propriedades:
1

3 4

a raiz tem pelo menos duas subrvores, a menos que ela seja uma folha; cada n no-raiz e no-folha contm k 1 chaves e k ponteiros para subrvores, em que n k n; 2 cada n folha contm k 1 chaves, em que n k n; 2 todas as folhas esto no mesmo nvel.

Exerccio: Implemente um TAD (Tipo Abstrato de Dados) que represente uma rvore B.

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

11/29

RVORE B

Figura: rvore B de ordem 5.

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

12/29

RVORE B

Resposta:

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

13/29

B USCA

EM UMA

RVORE B

A busca em uma rvore B consiste em, primeiramente, fazer uma busca sequencial em todas as chaves de um determinado n Caso encontre a chave desejada, o algoritmo retorna o n que contm a chave Caso no encontre a chave no n corrente, o algoritmo avana para o lho do n no qual a chave pode estar e, ento realiza uma nova busca Se a chave no for encontrada em nenhum n, o algoritmo retorna NULL Exerccio: Implemente um algoritmo que realize a busca por uma chave em uma rvore B

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

14/29

B USCA
Resposta:

EM UMA

RVORE B

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

15/29

I NSERO

EM UMA

RVORE B

Pode-se identicar trs situaes comuns quando se insere uma chave em uma rvore B. Lembrando que a tarefa de insero deve manter o balanceamento da rvore, temos que
1

uma chave pode ser colocada em uma folha que ainda tem algum espao. A ordem da chave nas folhas deve ser sempre preservada a folha na qual uma chave precisa ser colocada est cheia tem-se, ainda, o caso em que a raiz da rvore est cheia e uma chave precisa subir para a raiz

2 3

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

16/29

I NSERO

EM UMA

RVORE B

Antes da insero:

Depois da insero:

Figura: Insero em uma rvore B na folha com espao.

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

17/29

I NSERO

EM UMA

RVORE B

Antes da insero:

Depois da insero:

?
Figura: Insero em uma rvore B na folha sem espao.

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

18/29

I NSERO

EM UMA

RVORE B

Figura: rvore B aps insero em uma folha sem espao.

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

19/29

I NSERO

EM UMA

RVORE B

Figura: rvore B com ns todos cheios.

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

20/29

I NSERO

EM UMA

RVORE B

Figura: Insero da chave 13 na rvore B.

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

21/29

I NSERO

EM UMA

RVORE B

Figura: Criao de uma nova raiz para a rvore B.

Projeto: Elabore um algoritmo de alto nvel, utilizando a linguagem C, que realize o processo de insero em uma rvore B.

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

22/29

R EMOO

EM UMA

RVORE B

A remoo em grande parte o inverso da insero, embora tenha mais casos especiais Deve-se tomar cuidado para evitar que cada n esteja menos da metade cheio depois de uma remoo Isso signica que os ns algumas vezes devem ser fundidos Na remoo existem dois casos principais:
remover uma chave de uma folha remover uma chave de um n no-folha

No segundo caso utiliza-se um procedimento similar remoo por cpia, usada para rvores binrias de busca

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

23/29

R EMOO

EM UMA

RVORE B

Acompanhar pela Figura 7.9 do livro. Remover a chave de uma folha:


Se, depois de remover uma chave K , a folha est pelo menos metade cheia e somente chaves maiores do que K so movidas para a esquerda do buraco Se, depois de remover K , o nmero de chaves na folha menor do que [n/2] 1, causando uma subutilizao

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

24/29

R EMOO

EM UMA

RVORE B

Se, depois de remover K , o nmero de chaves na folha menor do que [n/2] 1, causando uma subutilizao:
Se existem um irmo, esquerda ou direita com o nmero de chaves excedendo o mnimo [n/2] 1, ento todas as chaves dessa folha ou desse irmo so redistribudas entre eles, movendo-se a chave separadora do ascendente at a folha e movendo-se uma chave do irmo at o ascendente Se a folha subutilizada e o nmero de chaves do seu irmo [n/2] 1, a folha e o irmo so fundidos; as chaves de uma folha, de seu irmo e a chave de separao do ascendente so todas colocadas na folha e o n irmo descartado. As chaves no ascendente so movidas se um buraco aparece. Isso pode inicializar uma cadeia de operaes se o ascendente subutilizado. O ascendente agora tratado como se fosse uma folha, e essa etapa repetida at que a etapa anterior possa ser executada ou a raiz da rvore tenha sido atingida.

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

25/29

R EMOO

EM UMA

RVORE B

Um caso particular resulta em fundir uma folha ou no-folha com seu irmo quando o seu ascendente a raiz com somente uma chave. Nesse caso, as chaves do n e seu irmo, junto com a nica chave da raiz, so colocadas no n que se torna uma nova raiz, e tanto o n irmo como o n raiz velho so descartados. o nico caso em que dois ns desaparecem ao mesmo tempo. Alm disso, a altura da rvore diminuda por um.

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

26/29

R EMOO

EM UMA

RVORE B

Remover uma chave de uma no-folha:


Isso pode levar a problemas com a reorganizao da rvore. Em consequncia, a remoo de um n no-folha transformada na remoo de uma chave de uma folha. A chave a ser removida substituda por seu sucessor imediato (o predecessor tambm poderia ser utilizado), que pode ser encontrado somente em uma folha. Essa chave sucessora removida da folha, o que nos leva para o caso anterior (Remover a chave de um n folha).

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

27/29

R EMOO

EM UMA

RVORE B

Figura: Algoritmo de deleo.


Felipe P. Correia (FAP) rvore B e seu Balanceamento 28/29

R EMOO

EM UMA

RVORE B

As rvores B, de acordo com sua denio, esto garantidas de serem pelo menos 50% cheias, por isso pode acontecer de 50% de espao ser basicamente perdido Com que frequncia isso acontece? Se muito frequentemente, a denio precisa ser reconsiderada ou algumas outras restries impostas a essa rvore B As anlise e simulaes, no entanto, indicam que, depois de uma srie de numerosas inseres e remoes aleatrias, a rvore B est aproximadamente 69%, depois do que as mudanas na porcentagem de clulas ocupadas so muito pequenas Mas muito improvvel que a rvore B v sempre estar cheia at a borda, assim, algumas estipulaes adicionais so necessrias

Felipe P. Correia (FAP)

rvore B e seu Balanceamento

29/29

Anda mungkin juga menyukai