B树
B树
难点。
回顾:二叉查找树(BST)
typedef struct{ int key; struct BSTNode *lchild,*rchild; }BSTNode,*BSTree;
能否变为m叉查找树?
五叉查找树
struct Node{ ElemType keys[4]; //最多4个关键字 struct Node *child[5]; //最多5个孩子 int num; //结点中有几个关键字 }
最少1个关键字,2个分叉
最多4个关键字,5个分叉
结点内关键字有序
如何查找
区间里判断左边还是右边
一开始,9比22小,走22左边的指针路线
9在下一层的这里对比,比5大,指针往右移,和11对比,比11小,走11左边的指针路线
9在第三层这对比,比6大,指针右移,比8大,指针右移,到9相等。找到
一开始,41比22大,走22右边的指针路线
到下一层,41比36大,指针右移,和45对比,比45小,走45左边指针路线
到第三次,比40大,指针右移,比42小,走42左边指针路线,等于null,查找失败
每个结点都可以用折半查找哦
如何保证查找效率
策略:m叉查找树中,规定除了根节点外,任何结点至少有(向上取整m/2个)分叉
,即至少含有有(向上取整m/2 -1)个关键字
向上取整!!
例如:5叉排序树,规定除了根节点外,任何结点都至少有3个分叉,2个关键词
不够平衡也效率差
策略:m叉查找树中,规定对于任何一个结点,其所有子树的高度都要相同。
B树
总结一下:
B树的高度
知识回顾
本文作者:Jev_0987
本文链接:https://www.cnblogs.com/jev-0987/p/13307761.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步