Você está na página 1de 78

Mestrado em Ciência da Computação

Estrutura de Dados

Árvores B+

Alexandre e Hugo
André Luis Schwerz
andreluis@utfpr.edu.br
1
Agenda
● Motivação
● Característica e Regras
● Árvore Binária vs Árvore B+
● Implementação
○ Busca
○ Inserção
○ Remoção
● Exercícios

2
Motivação

Melhorar o tempo de busca de um determinado elemento


Busca, Inserção e Remoção em tempo logarítmico O(log n)
Reduzir os níveis de busca.

Muito usado em Banco de Dados

3
Motivação

4
Árvore B+

5
Árvore B+

6

#define TAMANHO 4

Esq Dado Dir Dado Dado Dado Dado


B+

7
Árvore Binária
3
[3, 5, 7, 11, 20, 23, 27, 45, 47]
5

Apresentar os números 7

existentes de 11 a 45 11

20

23

27

45

47
8
Árvore AVL
[3, 5, 7, 11, 20, 23, 27, 45, 47]
11

Apresentar os números 5 23
existentes de 11 a 45
3 7 20 45

27 47

9
Árvore B
[3, 5, 7, 11, 20, 23, 27, 45, 47]
11
Apresentar os números
existentes de 11 a 45
5 23 45

3 7 20 27 47

10
Árvore B+
7 26

3
5 11 22 45

2 4 5 7 11 19 22 26 45 47

11
Características

Um nó pode ter mais de dois filhos


Auto-balanceada
Cada nó sempre deverá estar 50% cheio (exceto raiz)
Toda a árvore deverá ter a mesma altura
Tamanho de cada nó é parametrizável

12
Regras

Todas as folhas estão no mesmo nível


A raiz tem pelo menos 2 filhos
Cada nó pode conter no máximo m-1 chaves e um mínimo de
(m/2) - 1 chaves
Cada nó, exceto a raiz, pode ter no máximo m filhos e pelo
menos m/2

13
Árvore B+
7 26

3
5 11 22 45

2 4 5 7 11 19 22 26 45 47

14
Mestrado em Ciência da Computação
Estrutura de Dados

Implementações

André Luis Schwerz


15
andreluis@utfpr.edu.br
Busca - Buscar 45
25

15 35 45

5 15 20 25 30 35 40 45 55

16
Busca - Buscar 45
25

15 35 45

5 15 20 25 30 35 40 45 55

17
Busca - Buscar 45
25

15 35 45

5 15 20 25 30 35 40 45 55

18
Busca - Buscar 45
25

15 35 45

5 15 20 25 30 35 40 45 55

19
Busca - Buscar 45
25

15 35 45

5 15 20 25 30 35 40 45 55

20
Busca - Buscar 45
25

15 35 45

5 15 20 25 30 35 40 45 55

21
Busca - Buscar 45
25

15 35 45

5 15 20 25 30 35 40 45 55

22
Inserção
- Nós intermediários só contém sinalizadores
- Registros completos estão na folha
- Os Nós contêm a chave de pesquisa

23
Inserção - Adicionando o 5

24
Inserção - Adicionando o 5

25
Inserção - Adicionando o 15

5 15

26
Inserção - Adicionando o 15

5 15

27
Inserção - Adicionando o 25

5 15 25

28
Inserção - Adicionando o 25

SPLIT

5 15 25

29
Inserção - Adicionando o 25
15

5 15 25

30
Inserção - Adicionando o 25
15

5 15 25

31
Inserção - Adicionando o 35
15

5 15 25

32
Inserção - Adicionando o 35
15

5 15 25 35

33
Inserção - Adicionando o 35
15

SPLIT

5 15 25 35

34
Inserção - Adicionando o 35
15 25

5 15 25 35

35
Inserção - Adicionando o 35

15 25

5 15 25 35

36
Inserção - Adicionando o 45

15 25

5 15 25 35

37
Inserção - Adicionando o 45

15 25

5 15 25 35 45

38
Inserção - Adicionando o 45

15 25

SPLIT

5 15 25 35 45

39
Inserção - Adicionando o 45

15 25 35

5 15 25 35 45

40
Inserção - Adicionando o 45

15 25 35

5 15 25 35 45

41
Inserção - Adicionando o 45

15 25 35

SPLIT

5 15 25 35 45

42
Inserção - Adicionando o 45

15 25 35

5 15 25 35 45

43
Inserção - Adicionando o 45
25

15 35

5 15 25 35 45

44
Inserção - Adicionando o 45

25

15 35

5 15 25 35 45

45
Remoção
- Há 3 casos e 6 cenários
- Caso 1: O item a ser excluído está presente APENAS no nó folha
- Cenário 1: Existem mais de 1 item no nó
- Cenário 2: Existe apenas 1 item no nó
- Caso 2: A chave excluída existe nos nós índices
- Cenário 1: Existem mais de 1 item no nó índice e no nó folha
- Cenário 2: Existem apenas 1 item no nó folha
- Cenário 3: Espaço vazio é gerado acima do nó pai
- Caso 3: Altura da árvore diminui

46
Exclusão - Caso 1 - Cenário 1
- Caso 1: O item a ser excluído está presente APENAS no nó folha
- Cenário 1: Existem mais de 1 item no nó

25

15 35

5 15 25 35 45

47
Exclusão - Caso 1 - Cenário 1
- Caso 1: O item a ser excluído está presente APENAS no nó folha
- Cenário 1: Existem mais de 1 item no nó

25

15 35

5 15 25 35 45

48
Exclusão - Caso 1 - Cenário 1
- Caso 1: O item a ser excluído está presente APENAS no nó folha
- Cenário 1: Existem mais de 1 item no nó

25

15 35

5 15 25 35 X
45

49
Exclusão - Caso 1 - Cenário 1
- Caso 1: O item a ser excluído está presente APENAS no nó folha
- Cenário 1: Existem mais de 1 item no nó

25

15 35

5 15 25 35

50
Exclusão - Caso 1 - Cenário 2
- Caso 1: O item a ser excluído está presente APENAS no nó folha
- Cenário 2: Existe apenas 1 item no nó

25

15 35

5 15 25 35

51
Exclusão - Caso 1 - Cenário 2
- Caso 1: O item a ser excluído está presente APENAS no nó folha
- Cenário 2: Existe apenas 1 item no nó

25

15 35

5 15 25 35

52
Exclusão - Caso 1 - Cenário 2
- Caso 1: O item a ser excluído está presente APENAS no nó folha
- Cenário 2: Existe apenas 1 item no nó

25

15 35

X
5 15 25 35

53
Exclusão - Caso 1 - Cenário 2
- Caso 1: O item a ser excluído está presente APENAS no nó folha
- Cenário 2: Existe apenas 1 item no nó

25

15 35

15 25 35

54
Exclusão - Caso 1 - Cenário 2
- Caso 1: O item a ser excluído está presente APENAS no nó folha
- Cenário 2: Existe apenas 1 item no nó

25

15 35

15 25 35

55
Exclusão - Caso 1 - Cenário 2
- Caso 1: O item a ser excluído está presente APENAS no nó folha
- Cenário 2: Existe apenas 1 item no nó

25

15 35

15 25 35

56
Exclusão - Caso 1 - Cenário 2
- Caso 1: O item a ser excluído está presente APENAS no nó folha
- Cenário 2: Existe apenas 1 item no nó

25 35

15 25 35

57
Exclusão - Caso 1 - Cenário 2
- Caso 1: O item a ser excluído está presente APENAS no nó folha
- Cenário 2: Existe apenas 1 item no nó

25 35

15 25 35

58
Exclusão - Caso 1 - Cenário 2
- Caso 1: O item a ser excluído está presente APENAS no nó folha
- Cenário 2: Existe apenas 1 item no nó

25 35

15 25 35

59
Exclusão - Caso 2 - Cenário 1
- Caso 2: A chave excluída existe nos nós índices
- Cenário 1: Existem mais de 1 item no nó índice e no nó folha

15 20

5 15 20 25

60
Exclusão - Caso 2 - Cenário 1
- Caso 2: A chave excluída existe nos nós índices
- Cenário 1: Existem mais de 1 item no nó índice e no nó folha

15 20

5 15 20 25

61
Exclusão - Caso 2 - Cenário 1
- Caso 2: A chave excluída existe nos nós índices
- Cenário 1: Existem mais de 1 item no nó índice e no nó folha

15 20

5 15 25

62
Exclusão - Caso 2 - Cenário 1
- Caso 2: A chave excluída existe nos nós índices
- Cenário 1: Existem mais de 1 item no nó índice e no nó folha

15 25

5 15 25

63
Exclusão - Caso 2 - Cenário 2
- Caso 2: A chave excluída existe nos nós índices
- Cenário 2: Existem apenas 1 item no nó folha

25

20 30 35

15 20 25 30 35 55

64
Exclusão - Caso 2 - Cenário 2
- Caso 2: A chave excluída existe nos nós índices
- Cenário 2: Existem apenas 1 item no nó folha

25

20 30 35

15 20 25 30 35 55

65
Exclusão - Caso 2 - Cenário 2
- Caso 2: A chave excluída existe nos nós índices
- Cenário 2: Existem apenas 1 item no nó folha

25

20 30 35

15 20 25 35 55

66
Exclusão - Caso 2 - Cenário 2
- Caso 2: A chave excluída existe nos nós índices
- Cenário 2: Existem apenas 1 item no nó folha

25

20 35

15 20 25 35 55

67
Exclusão - Caso 2 - Cenário 2
- Caso 2: A chave excluída existe nos nós índices
- Cenário 2: Existem apenas 1 item no nó folha

25

20 35

15 20 25 35 55

68
Exclusão - Caso 2 - Cenário 2
- Caso 2: A chave excluída existe nos nós índices
- Cenário 2: Existem apenas 1 item no nó folha

25

20 35 55

15 20 25 35 55

69
Exclusão - Caso 2 - Cenário 3
- Caso 2: A chave excluída existe nos nós índices
- Cenário 3: Espaço vazio é gerado acima do nó pai

25

20
30 35

15 20 25 30 35 55

70
Exclusão - Caso 2 - Cenário 3
- Caso 2: A chave excluída existe nos nós índices
- Cenário 3: Espaço vazio é gerado acima do nó pai

25

20
30 35

15 20 25 30 35 55

71
Exclusão - Caso 2 - Cenário 3
- Caso 2: A chave excluída existe nos nós índices
- Cenário 3: Espaço vazio é gerado acima do nó pai

25

20
30 35

15 20 30 35 55

72
Exclusão - Caso 2 - Cenário 3
- Caso 2: A chave excluída existe nos nós índices
- Cenário 3: Espaço vazio é gerado acima do nó pai

30

20
35

15 20 30 35 55

73
Exclusão - Caso 2 - Cenário 3
- Caso 3: Altura da árvore diminui

30

20
55

15 20 30 55

74
Exclusão - Caso 2 - Cenário 3
- Caso 3: Altura da árvore diminui

30

20
55

15 20 30 55

75
Exclusão - Caso 2 - Cenário 3
- Caso 3: Altura da árvore diminui

30

20

15 20 30

76
Exclusão - Caso 2 - Cenário 3
- Caso 3: Altura da árvore diminui

20 30

15 20 30

77
Exercícios

1. Apresente o esquema final de um árvore B+ de ordem 3


com os seguintes elementos:
a. 94, 13, 27, 84, 93, 11, 9, 55, 49, 28, 57, 12

2. Quais serão o(s) elemento(s) da raiz?

3. O que acontecerá se excluirmos os números 93 e 94? qual


o resultado final da árvore?

78

Você também pode gostar