-
Notifications
You must be signed in to change notification settings - Fork 1
/
bTreeInsert.h
56 lines (43 loc) · 1.63 KB
/
bTreeInsert.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#ifndef __BTREEINSERT_H__
#define __BTREEINSERT_H__
#include "bTreeUtils.h"
/*
* Algoritmos e Estruturas de Dados II
* Autores: Lucas Toschi, Murilo Todão e Marcos Ordonha (Grupo 15)
*
* BTREEINSERT.H
* Neste arquivo estão todas as funções e estruturas que estão
* relacionadas com a inserção de registros na BTree.
*/
/*
* Função que inicia a inserção na BTree a partir de um registro
* específico
*/
int bTreeInsert(record *newRecord);
/*
* Função recursiva que percorre a árvore para inserção de um registro.
* Já realiza o tratamento de nós promovidos.
*/
int _bTreeInsert(record *newRecord, bPageInfo *bInfo, promotedKey **promoted);
/*
* Função que realiza a inserção de um registro em uma página específica da BTree.
*/
void bTreeInsertIntoPage(record *newRecord, promotedKey **promoted, bPageInfo *bInfo, long insertPosition);
/*
* Funções para limpar informações da página com overflow e inserir informações na página nova, respectivamente
*/
void insertPageData(bTreePage *bPage, bTreePage *createdPage, long *childsArray, long startingPosition);
void cleanPageData(bTreePage *bPage, long *childsArray, long startingPosition);
/*
* Função para promover um novo record em caso de overflow
*/
promotedKey *promoteKey(record *rec, int LeftRRN, int RightRRN);
/*
* Função para armazenar informações acerca de filhos em caso de overflow
*/
long *createChildsArray(bPageInfo *bInfo, promotedKey *promoted);
/*
* Função responsável pela atualização da página header da BTree.
*/
int headerUpdate(promotedKey *promoted, FILE *bFile);
#endif