Você está na página 1de 30

ESTRUTURA DE DADOS

rvores Binrias B Simtricas


Prof. Luiz Claudio Demes da Mata Sousa
2014.2 - UFPI

RVORES B
Proposto

em 1972 por Bayer e McCreight,


desenvolvido no Laboratrio de Pesquisas
Cientficas Boeing
A origem do nome nunca foi explicado pelos
autores

B de Bayer ou B de Boeing?

RVORES B

Definies

rvores Binrias de Pesquisa tm no mximo 2 ns.


Quando existem 2 ou mais ns, passam a ser chamadas de n-rias
Nesses casos, os ns so mais comumente chamados de pginas
Os registros de uma rvore B tambm so todos ordenados

Supondo uma rvore B n-ria. Em um rvore B de ordem m


temos:

EXEMPLO DE UMA RVORE B


Exemplo de uma rvore B de ordem 2 com 3 nveis
30
10 20

40 50
Pginas

3489

11 13 17

25 28

33 36

43 45 48

52 55

PESQUISA EM RVORE B
Procedimento para pesquisa do nmero 13
30
10 20

3489

11 13 17

40 50

25 28

33 36

42 45 48

52 55

PESQUISA EM RVORE B

Procedimento para pesquisa do nmero 55


30
10 20

3489

11 13 17

40 50

25 28

33 36

42 45 48

52 55

INSERO
Primeiro,

preciso localizar a pgina apropriada


em que o novo registro deve ser inserido
Duas possibilidades:

Caso 1: O registro encontra seu lugar em uma pgina


com menos de 2m registros. Nesse caso, o processo de
insero fica limitado quela pgina
Caso 2: O registro precisa ser inserido em uma
pgina j cheia (com 2m registros). Nesse caso, o
processo de insero pode levar criao de uma
nova pgina.

INSERO DE REGISTROS
Caso 1: o registro encontra seu lugar em uma pgina com menos de 2m
registros Ordem 2

40

Registro 9
Registro 45
Registro 50

3 4 89

41 43 45 50

INSERO DE REGISTROS
Caso 2: O registro precisa ser inserido em uma pgina j cheia (com 2m
registros), e a pgina pai tem menos que 2m registros e 2m+1 pginas Ordem: 2

40

Registro 20
348 9

20

40

41 43 45 50

3 4 8 9 20

41 43 45 50

8 40
40

3 4 8 9 20

41 43 45 50

34

9 20

41 43 45 50

INSERO DE REGISTROS
Caso 2: O registro precisa ser inserido em uma pgina j cheia (com 2m registros),
e a pgina pai j tem 2m registros e 2m+1 pginas
Ordem: 2

8 20 28 40

Registro 22

1347

9 13 15 18 21 23 25 26

22

1347

30 33 35 37

41 43 45 50

8 20 28 40

9 13 15 18

21 22 23 25 26

30 33 35 37

41 43 45 50

8 20 23 28 40

1347

9 13 15 18

21 22

25 26

30 33 35 37

41 43 45 50

23

28 40

8 20

1347

9 13 15 18

21 22

25 26

30 33 35 37

41 43 45 50

REMOO
Primeiro,

preciso localizar a pgina apropriada do


registro a ser excludo
Duas possibilidades:

Caso 1: quando o registro se encontra em uma pgina folha.


1.1: A folha possui mais que m registros
1.2: A folha possui apenas m registro e o irmo possui m+1 registros
1.3: A folha e seus irmos possuem apenas m registros

Caso 2: quando o registro no se encontra em uma folha. Nesse


caso, o registro a ser retirado deve ser primeiro substitudo por
um outro para depois ser excludo.

Em

ambos os casos deve-se verificar se a retirada no


afeta as propriedades bsicas de uma rvore B

REMOO DE REGISTROS
Caso 1.1: quando o registro se encontra em uma pgina folha e a folha possui
mais que m registros
Ordem 2

Registros 7, 13, 15, 33, 37, 41 e 43

23
28 40

8 20

1347

9 13 15 18

21 22

Retirada simples do elemento da folha

25 26

30 33 35 37

41 43 45 50

REMOO DE REGISTROS
Caso 1.2: quando o registro se encontra em uma pgina folha, a folha possui
m registros (mnimo possvel) e o irmo possui m+1 registros
Ordem 2

23

Registro 9
28 40

8 20
134

9 18

21 22

25 26

30 35

45 50
23
28 40

4 20
13

8 18

21 22

25 26

30 35

A chave k do pai que separa os irmos pode ser includa no n X e a


ltima ou primeira chave do irmo (ltima se o irmo for da esquerda
e primeira se o irmo for da direita) pode ser inserida no pai no lugar
de k.

45 50

REMOO DE REGISTROS
Caso 1.2: quando o registro se encontra em uma pgina folha, a folha possui
m registro (mnimo possvel) e o irmo possui m+1 registros
Ordem 2
23

Registro 18
28 40

8 19
134

9 18

20 21 22

25 26

30 35

45 50
23
28 40

8 20
134

8 19

21 22

25 26

30 35

45 50

REMOO DE REGISTROS
Caso 1.3: quando o registro se encontra em uma pgina folha, a folha e seus
irmos possuem m registros (mnimo possvel). Se sub-dividem em dois
casos:
Caso 1.3.1: O pai pode emprestar registros
Caso 1.3.2: O pai no pode emprestar registros

REMOO DE REGISTROS
Caso 1.3.1: quando o registro se encontra em uma pgina folha, a folha e seus
irmos possuem m registros (mnimo possvel) e o pai pode emprestar
Ordem 2

23

Registro 6

13

28 40

4 10 20
68

13 18

21 22

25 26

30 35

45 50

23
28 40

10 20
1348

13 18

21 22

25 26

30 35

Se os dois irmos de X contiverem exatamente m registros (ocupao


mnima), nenhum registro poder ser emprestado. Neste caso, o n X e
um de seus irmos ( esquerda ou direita) so concatenados em um
nico n, que tambm contm a chave separadora do pai.

45 50

REMOO DE REGISTROS
Caso 1.3.1: quando o registro se encontra em uma pgina folha, a folha e seus
irmos possuem m registros (mnimo possvel) e o pai pode emprestar
Ordem 2

23

Registro 8

13

28 40

4 10 20
68

13 18

21 22

25 26

30 35

45 50

23
28 40

4 20
13

6 10 13 18

21 22

25 26

30 35

45 50

REMOO DE REGISTROS
Caso 1.3.2: quando o registro se encontra em uma pgina folha, a folha e seus
irmos possuem m registros (mnimo possvel) e o pai no pode emprestar
Ordem 2
Registro 13
23
28 40

10 20
48

13 18

21 22

25 26

30 35

45 50

Se os dois irmos de X e o pai contiverem exatamente m registros (ocupao


mnima), tambm nenhum registro poder ser emprestado. Neste caso, o n X
e um de seus irmos so concatenados em um nico n que tambm contm
a chave separadora do pai, e o procedimento feito recursivamente at que
as pginas contenham a quantidade mnima de registros.

REMOO DE REGISTROS

23
28 40

10 20
48

13 18

21 22

25 26

30 35

45 50

23
28 40

20
4 8 10 18

21 22

25 26

30 35

45 50

4 8 10 18

20 23 28 40

21 22

25 26

30 35

45 50

REMOO
Caso

2: quando o registro no se encontra em


uma folha.

Mesmo

procedimento de remoo em rvores


binrias ou AVL

Substituio pelo registro mais direita da subrvore esquerda;


Substituio pelo registro mais esquerda da subrvore direita;

Caso

2.1: a sub-rvore vizinha possui registros


para emprestar
Caso 2.2: a sub-rvore vizinha no possui
registros para emprestar

REMOO DE REGISTROS
Caso 2.1: a sub-rvore vizinha possui registros para emprestar

20 24 28 40

Registro 20

4 8 10 18

21 22 23

25 26

30 35

45 50

21 24 28 40

OU
18 24 28 40
4 8 10 18
4 8 10

21 22 23

25 26

30 35

45 50

22 23

25 26

30 35

45 50

REMOO DE REGISTROS
Caso

2: quando o registro no se encontra em


uma folha.
Possui dois casos:
Caso 2.2.1: O irmo possui registros para
emprestar
Caso 2.2.2: O irmo no possui registros para
emprestar

REMOO DE REGISTROS
Caso 2.2.1: a sub-rvore vizinha NO possui registros para emprestar e o irmo
possui registros para emprestar

23

Registro 20
4 20
13

6 18

28 37 40
21 22

25 26

38 39

30 35

45 50

23
28 37 40

4
13

6 18 21 22

25 26

30 35

38 39

45 50
Concatena-se o filho esquerda e direita do registro excludo; o registro mais esquerda
(ou mais direita) do irmo promovido para a raiz e o registro esquerda (ou direita) da
raiz inserido na pgina que teve o registro excludo; o filho esquerda (ou o filho
direita) do registro que foi emprestado passa a ser o filho direita (ou esquerda) do n
para onde ele foi deslocado;

REMOO DE REGISTROS
23
28 37 40

4
13

6 18 21 22

25 26

30 35

38 39

45 50

28
4 23
13

6 18 21 22

37 40
25 26

30 35

38 39

45 50

REMOO DE REGISTROS
Caso 2.2.1: a sub-rvore vizinha NO possui registros para emprestar e o irmo
possui registros para emprestar

28

Registro 40
4 20 25
13

6 18

22 23

37 40
26 27

30 32

38 39

45 50

28
4 20 25
13

6 18

22 23

37
26 27

30 32

38 39 45 50

REMOO DE REGISTROS
28
4 20 25
13

6 18

22 23

37
26 27

30 32

38 39 45 50

25
28 37

4 20
13

6 18

22 23

26 27

30 32

38 39 45 50

REMOO DE REGISTROS
Caso 2.2.2: a sub-rvore vizinha NO possui registros para emprestar e o irmo
tambm NO possui registros para emprestar

28

Registro 23

4 23
13

37 40
25 26

6 18

30 35

45 50

4 28 37 40

28
4
13

6 18 25 26

37 40
30 35

45 50

13

6 18 25 26

30 35

45 50

Concatena-se os registros filhos esquerda e direita do registro excludo; em seguida,


concatena-se os registros da pgina excluda, do seu irmo e do seu pai

CONSIDERAES FINAIS
Algoritmos de pesquisa so bem simples
Algoritmos de insero e excluso podem ser
complicados, dependendo da ocasio
No se aprende rvores B sem praticar
Sugesto: no site
http://www.ic.unicamp.br/%7Erezende/Astral.htm,
existe um executvel que simula essas
operaes. Pegue um conjunto de dados e
aplique as operaes. Depois verifique nesse
executvel se a operao foi feita correta.

FIM

Você também pode gostar