数据结构:B-树
来源:互联网 发布:19s管理淘宝 编辑:程序博客网 时间:2024/05/21 05:20
一、B-树介绍
B-树是用于存储数据的一种结构,它的目的:在对数据进行存储的同时方便后续的检索等操作。B-树在查找、访问、插入、删除操作上时间复杂度为O(log2~n),对大块数据读写的操作也有不错的性能。
二、B-树定义
基本名词解释:
(1)树的节点类型:非叶子节点(包括根节点),叶子节点;
(2)关键字:存储在每一个节点的元素。
(3)孩子:每个节点拥有的孩子指针。
m阶B-树的定义:
(1)每个节点可存储的关键字数量为[0,m-1];
(2)每个节点可拥有的孩子数量为[0,m]。
(3)假设孩子数量为A,关键字数量为B,当节点为非叶子节点时,两者之间的关系为B=A-1;当节点为叶子节点时,A=0,B∈[0,m]。
三、基本操作
3.1创建3阶B-树
基本思路:每次都是往叶子节点插入新的数据,若达到节点存储的个数上限,需要进贡与分裂。在这个过程中,树的高度会增大。
序列:【24,45,53,46,9,8,18,92,78,102】
插入24
插入45,53,由于3阶B-树中节点的关键字数量最大为3-1=2,因此节点需要向上进贡,并自己分裂。此时需要把中间的数字45进贡上去,同时自己分裂成两个节点。注意:若关键字数量为偶数,则把在中间靠后的那个数进贡上去。比如数量为4,把第3个关键字进贡上去。
插入46,9,8。此时关键字的数量超标,中间的9进贡给父亲
插入18,92。进贡53给父亲后,父亲的关键字数量也超标,继续进贡、分裂,此时树高增加。
插入78,102。进贡92给父亲,自己分裂。
3.2 增删改查
后续更新。可参考:http://hao3100590.iteye.com/blog/1576846
阅读全文
0 0
- 【数据结构】B树/B+树
- 数据结构--B 树、B+ 树、B* 树
- 数据结构:B树&B+树&B*树
- 数据结构--B树
- 经典数据结构B+树
- 数据结构B-树
- 【数据结构】B树_BTree
- 数据结构B树
- 数据结构-B树实现
- 数据结构之B树
- B+树数据结构
- 高级数据结构B树
- 数据结构-----------B树
- 【数据结构】浅析B树
- 数据结构之B-树
- java数据结构----B树
- 算法数据结构-B树
- 数据结构:B-树
- xpath解析xml文档
- 归并(合并)排序
- 乘机最大子序列
- redhat下配置非官方yum源的方法
- 十、Android XML解析
- 数据结构:B-树
- java数组知识
- Java实现-恢复旋转排序数组
- 京东配送机器人在人大完成全球首单
- Struts2获取servletAPI的几种方式
- 中国网页游戏行业调研与分析
- HDOJ 1348 Wall (凸包)
- 07、react之 属性
- HBase性能优化方法总结(二):写表操作