Algoritmo de inserção na árvore B
A inserção em uma árvore B segue algumas regras importantes para garantir que a estrutura permaneça balanceada e respeite os limites do número de chaves por página.
Passo a Passo
1. Localizar a folha onde o elemento será inserido
A inserção sempre ocorre em uma folha, então percorra a árvore como em uma busca para encontrar a posição correta.
2. Verificar se há espaço na página
Se a página (nó) ainda não estiver cheia (menos que
Caso a página esteja cheia (
3. Dividir a página se necessário
Quando a página está cheia, as chaves são redistribuídas:
Divida a página em duas novas páginas.
- A chave do meio sobe para a página pai.
- Redistribua as chaves restantes entre as duas novas páginas.
4. Repetir no nível superior, se necessário
Se a página pai também estiver cheia após receber a chave do meio, o processo de cisão continua de forma recursiva até alcançar a raiz.
Caso a raiz precise ser dividida, cria-se uma nova raiz, aumentando a altura da árvore.
Exemplo
Imagine uma árvore B de ordem 4 (
Árvore inicial (vazia):
[]
Inserindo as chaves: 10, 20, 30:
[10 | 20 | 30]
Inserindo a chave 40 (página cheia, precisa de cisão):
- A página
está cheia. - Dividimos:
- A chave do meio (20) sobe para o nível superior (nova raiz).
- As chaves restantes são distribuídas em duas páginas:
[20]
/ \
[10] [30 | 40]
Inserindo a chave 5:
- Localizamos a folha
. - Após a inserção, a página fica assim:
[20]
/ \
[5 | 10] [30 | 40]
Inserindo a chave 25:
- Localizamos a folha
. - Após a inserção, como há espaço, fica:
[20]
/ \
[5 | 10] [25 | 30 | 40]