B-树节点类定义
struct node {
int n; //关键字个数
int key[maxsize]; //关键字数组
node *ptr[maxsize+1]; //指向孩子节点的指针的数组
};
//在以root为根节点的B树中查找值为x的节点
node *dfs(node *root, int x) {
if (!root) return NULL;
else {
int i = 0;
while (i < root->n && x > root->key[i]) i ++; //在节点内查找
/*退出while循环的两种情况 (1)i == root->n 找到最后没找到
(2) 在当前节点内找到了一个关键字值小于等于 目标值x的节点 分情况讨论
*/
if (i == root->n) return dfs(root->ptr[i], x);
else if (x == root->key[i]) return root;
else return dfs(root->ptr[i], x);
}
}