Вы находитесь на странице: 1из 57

rvores B

Letcia Rodrigues Bueno


UFABC

rvores B: Introduo

forma de armazenamento em memria secundria;

rvores B: Introduo

forma de armazenamento em memria secundria; rvores balanceadas;

rvores B: Introduo

forma de armazenamento em memria secundria; rvores balanceadas; assegura que folhas esto no mesmo nvel

rvores B: Denio

Para nmero natural d , uma rvore B de ordem d satisfaz:

rvores B: Denio

Para nmero natural d , uma rvore B de ordem d satisfaz: 1. raiz folha ou tem pelo menos dois lhos;

rvores B: Denio

Para nmero natural d , uma rvore B de ordem d satisfaz: 1. raiz folha ou tem pelo menos dois lhos; 2. cada n diferente da raiz e das folhas possui no mnimo d + 1 lhos;

rvores B: Denio

Para nmero natural d , uma rvore B de ordem d satisfaz: 1. raiz folha ou tem pelo menos dois lhos; 2. cada n diferente da raiz e das folhas possui no mnimo d + 1 lhos; 3. cada n tem no mximo 2d + 1 lhos;

rvores B: Denio

Para nmero natural d , uma rvore B de ordem d satisfaz: 1. raiz folha ou tem pelo menos dois lhos; 2. cada n diferente da raiz e das folhas possui no mnimo d + 1 lhos; 3. cada n tem no mximo 2d + 1 lhos; 4. todas folhas esto no mesmo nvel;

rvores B: Denio

Um n de rvore B chamada pgina e tem as

propriedades:

rvores B: Denio

Um n de rvore B chamada pgina e tem as

propriedades:
1. Para m chaves em uma pgina P no folha, P tem m + 1 lhos;

rvores B: Denio

Um n de rvore B chamada pgina e tem as

propriedades:
1. Para m chaves em uma pgina P no folha, P tem m + 1 lhos; 2. Cada pgina possui entre d e 2d chaves, exceto raiz que tem entre 1 e 2d chaves;

rvores B: Denio

Um n de rvore B chamada pgina e tem as

propriedades:
1. Para m chaves em uma pgina P no folha, P tem m + 1 lhos; 2. Cada pgina possui entre d e 2d chaves, exceto raiz que tem entre 1 e 2d chaves; 3. Dentro da pgina, chaves esto ordenadas em ordem crescente;

rvores B: Denio

Um n de rvore B chamada pgina e tem as

propriedades:
1. Para m chaves em uma pgina P no folha, P tem m + 1 lhos; 2. Cada pgina possui entre d e 2d chaves, exceto raiz que tem entre 1 e 2d chaves; 3. Dentro da pgina, chaves esto ordenadas em ordem crescente; 4. P contm m + 1 ponteiros para os lhos de P ;

Exemplo de rvores B com d = 2


1 2 3 4 9 30 --15 20 --40 46 --52 56 58 -60 80 --65 70 --85 90 ---

50 ----

Busca da Chave 10: busca sem sucesso


1 2 3 4 9 30 --15 20 --40 46 --52 56 58 -60 80 --65 70 --85 90 ---

50 ----

Busca da Chave 10: busca sem sucesso


1 2 3 4 9 30 --15 20 --40 46 --52 56 58 -60 80 --65 70 --85 90 ---

50 ----

Busca da Chave 10: busca sem sucesso


1 2 3 4 9 30 --15 20 --40 46 --52 56 58 -60 80 --65 70 --85 90 ---

50 ----

rvores B: algoritmo para busca

1 BuscaB(x , pt , f , g ): 2 p ptraiz ; pt null ; f 0 2 enquanto p = null faa 3 i g 1; pt p 2 enquanto i m faa 6 se x > p .s[i ] ento 7 i g i +1 8 seno se x = p .s[i ] ento 9 p null ; 9 f 1; 10 seno p p .pont [i 1] 10 i m+2 11 se i = m + 1 ento p p .pont [m]

rvores B: insero inserindo chave 51 Operao de balanceamento: ciso de uma pgina


1 2 3 4 9 30 --15 20 --40 46 --52 56 58 -60 80 --65 70 --85 90 ---

50 ----

rvores B: insero inserindo chave 51 Operao de balanceamento: ciso de uma pgina


1 2 3 4 9 30 --15 20 --40 46 --52 56 58 -60 80 --65 70 --85 90 ---

50 ----

rvores B: insero inserindo chave 51 Operao de balanceamento: ciso de uma pgina


1 2 3 4 9 30 --15 20 --40 46 --52 56 58 -60 80 --65 70 --85 90 ---

50 ----

rvores B: insero inserindo chave 51 Operao de balanceamento: ciso de uma pgina


1 2 3 4 9 30 --15 20 --40 46 --51 52 56 58 60 80 --65 70 --85 90 ---

50 ----

rvores B: insero inserindo chave 57 Operao de balanceamento: ciso de uma pgina


1 2 3 4 9 30 --15 20 --40 46 --57 51 52 56 58 65 70 --85 90 ---

50 ----

60 80 ---

rvores B: insero inserindo chave 57 Operao de balanceamento: ciso de uma pgina


1 2 3 4 9 30 --15 20 --40 46 --51 52 56 57 58 65 70 --85 90 ---

50 ----

60 80 ---

rvores B: insero inserindo chave 57 Operao de balanceamento: ciso de uma pgina


1 2 3 4 9 30 --15 20 --40 46 --51 52 57 58 56 60 80 -65 70 --85 90 ---

50 ----

rvores B: insero inserindo chave 57 Operao de balanceamento: ciso de uma pgina


1 2 3 4 9 30 --15 20 --40 46 --51 52 --56 60 80 -57 58 --65 70 --85 90 ---

50 ----

rvores B: remoo

Dois casos:

rvores B: remoo

Dois casos: 1. chave x no est em folha: x substituda por y , a menor chave em uma folha tal que y maior que x ;

rvores B: remoo

Dois casos: 1. chave x no est em folha: x substituda por y , a menor chave em uma folha tal que y maior que x ; 2. chave x est em uma folha.

rvores B: remoo

Dois casos: 1. chave x no est em folha: x substituda por y , a menor chave em uma folha tal que y maior que x ; 2. chave x est em uma folha.

Logo, suciente fazer anlise da remoo em uma folha!

rvores B: remoo removendo chave 40

rvores B: remoo removendo chave 40

Duas operaes:

rvores B: remoo removendo chave 40

Duas operaes:
concatenao

rvores B: remoo removendo chave 40

Duas operaes:
concatenao redistribuio

rvores B: remoo removendo chave 40

1 2 3 4 9 30 --15 20 --40 46 --52 56 58 -60 80 --65 70 --85 90 ---

Duas operaes:
concatenao redistribuio

50 ----

rvores B: remoo removendo chave 40

1 2 3 4 9 30 --15 20 --46 ---52 56 58 -60 80 --65 70 --85 90 ---

Duas operaes:
concatenao redistribuio

50 ----

rvores B: remoo removendo chave 40

Duas operaes: concatenao:


irmos adjacentes:

1 2 3 4 9 30 --15 20 --46 ---52 56 58 -60 80 --65 70 --85 90 ---

pginas P e Q com mesmo pai e ponteiros adjacentes; P e Q tem menos de 2d chaves; Ento, concatena P e Q ; redistribuio

50 ----

rvores B: remoo removendo chave 40

Duas operaes: concatenao:


irmos adjacentes:

1 2 3 4 9 30 --P 15 20 --46 -Q --52 56 58 -60 80 --65 70 --85 90 ---

pginas P e Q com mesmo pai e ponteiros adjacentes; P e Q tem menos de 2d chaves; Ento, concatena P e Q ; redistribuio

50 ----

rvores B: remoo removendo chave 40

Duas operaes: concatenao:


irmos adjacentes:

1 2 3 4 9 30 --P 15 20 30 46 --Q --52 56 58 -60 80 --65 70 --85 90 ---

pginas P e Q com mesmo pai e ponteiros adjacentes; P e Q tem menos de 2d chaves; Ento, concatena P e Q ; redistribuio

50 ----

rvores B: remoo removendo chave 40

Duas operaes: concatenao:


irmos adjacentes:

1 2 3 4 9 ---15 20 30 46

pginas P e Q com mesmo pai e ponteiros adjacentes; P e Q tem menos de 2d chaves; Ento, concatena P e Q ; redistribuio

50 ----

52 56 58 -60 80 --65 70 --85 90 ---

rvores B: remoo removendo chave 40

Duas operaes: concatenao:


irmos adjacentes:

1 2 3 4 9 ---15 20 30 46

pginas P e Q com mesmo pai e ponteiros adjacentes; P e Q tem menos de 2d chaves; Ento, concatena P e Q ; redistribuio

50 ----

52 56 58 -60 80 --65 70 --85 90 ---

rvores B: remoo removendo chave 40

Duas operaes: concatenao:


irmos adjacentes:

1 2 3 4 9 P ---15 20 30 46

pginas P e Q com mesmo pai e ponteiros adjacentes; P e Q tem menos de 2d chaves; Ento, concatena P e Q ; redistribuio

50 ----

52 56 58 -60 80 Q --65 70 --85 90 ---

rvores B: remoo removendo chave 40

Duas operaes: concatenao:


irmos adjacentes:

1 2 3 4 9 P 50 60 80 15 20 30 46

pginas P e Q com mesmo pai e ponteiros adjacentes; P e Q tem menos de 2d chaves; Ento, concatena P e Q ; redistribuio

50 ----

52 56 58 ---Q --65 70 --85 90 ---

rvores B: remoo removendo chave 40

Duas operaes: concatenao:


irmos adjacentes:

1 2 3 4 9 P 50 60 80 15 20 30 46

pginas P e Q com mesmo pai e ponteiros adjacentes; P e Q tem menos de 2d chaves; Ento, concatena P e Q ; redistribuio

50 ----

52 56 58 ---Q --65 70 --85 90 ---

rvores B: remoo removendo chave 40

Duas operaes: concatenao:


irmos adjacentes:

1 2 3 4 9 P 50 60 80 15 20 30 46

pginas P e Q com mesmo pai e ponteiros adjacentes; P e Q tem menos de 2d chaves; Ento, concatena P e Q ; redistribuio

50 ----

52 56 58 ---Q --65 70 --85 90 ---

rvores B: remoo removendo chave 65

1 2 3 4

Duas operaes:
concatenao redistribuio: irmos adjacentes P e Q com pai W ; P e Q tem 2d chaves ou mais; Ento, redistribui chaves de P e Q com pai W ;

9 50 60 80

15 20 30 46

50 ----

52 56 58 ---Q --65 70 --85 90 ---

rvores B: remoo removendo chave 65

1 2 3 4

Duas operaes:
concatenao redistribuio: irmos adjacentes P e Q com pai W ; P e Q tem 2d chaves ou mais; Ento, redistribui chaves de P e Q com pai W ;

9 50 60 80

15 20 30 46

50 ----

52 56 58 ---Q --70 ---85 90 ---

rvores B: remoo removendo chave 65

1 2 3 4

Duas operaes:
concatenao redistribuio: irmos adjacentes P e Q com pai W ; P e Q tem 2d chaves ou mais; Ento, redistribui chaves de P e Q com pai W ;

9 50 60 80

15 20 30 46

50 ----

52 56 58 70 --Q ------85 90 ---

rvores B: remoo removendo chave 65

1 2 3 4

Duas operaes:
concatenao redistribuio: irmos adjacentes P e Q com pai W ; P e Q tem 2d chaves ou mais; Ento, redistribui chaves de P e Q com pai W ;

9 50 58 80

15 20 30 46

50 ----

52 56 ----Q --60 70 --85 90 ---

Exerccios

1. D um exemplo de uma ciso de pgina que se propaga at raiz.

Exerccios

1. D um exemplo de uma ciso de pgina que se propaga at raiz. 2. D um exemplo de uma concatenao que se propaga at raiz.

Exerccios

1. D um exemplo de uma ciso de pgina que se propaga at raiz. 2. D um exemplo de uma concatenao que se propaga at raiz. 3. A redistribuio propagvel? Justique.

Exerccios

1. D um exemplo de uma ciso de pgina que se propaga at raiz. 2. D um exemplo de uma concatenao que se propaga at raiz. 3. A redistribuio propagvel? Justique. 4. Escreva o algoritmo de insero em uma rvore B.

Exerccios

1. D um exemplo de uma ciso de pgina que se propaga at raiz. 2. D um exemplo de uma concatenao que se propaga at raiz. 3. A redistribuio propagvel? Justique. 4. Escreva o algoritmo de insero em uma rvore B. 5. Escreva o algoritmo de remoo em uma rvore B.

Bibliograa

SZWARCFITER, J. L. e MARKENZON, L. Estruturas de Dados e seus Algoritmos, LTC, 1994.

Perguntas?

Вам также может понравиться