所以,我必须在C中实现B * Tree但是我遇到了一些问题。我知道这棵树类似于B树,但在节点中需要2/3满,而不是1/2。因此,当我插入根目录时,例如最多3个键,我需要拆分我有这个配置
B
A C
但它违反了礼仪。
所以它必须在根目录中添加+2键,但内部节点保留3个键,为此我需要更改向量的大小,我不知道如何做到这一点。有什么帮助吗?
我的结构
#define m 7
#define MAX_KEYS_LEAF m - 1
#define MAX_KEYS m + 1
#define MAX_KIDS m
#define MINIMUM (2*m - 1)/3 -1
//B*TREE ESTRUTURA DA ÁRVORE
typedef struct tree {
int count;
int key[MAX_KEYS];
struct tree *kids[MAX_KIDS];
bool root;
} tree;