直面弱点,奋发图强!!!
复制代码
红黑树、B树、B+树,都是软件开发中一个比较难理解和掌握的知识点。他们的本质依然是平衡二叉搜索树。若是直接去学习红黑树、B树、B+树的知识点,无异于雾里看花。此次咱们从这些数据结构的底层逻辑设计出发,不牵扯任何代码层面上的内容。javascript
二节点java
一个key和左右两个连接;其中key大于左连接、小于右连接程序员
三节点markdown
包含两个key和三个连接(两个key分别称为key1和key2,key1小于key2)数据结构
一、二、3三个子连接(子连接1的key小于根结点key一、子连接2的key大于根结点key1且小于根结点key二、子连接3的key大于根结点key2)oop
四节点学习
包含三个key和四个子连接(三个key分别为key一、key二、key3且从小到大排列)spa
一、二、三、4三个子连接(子连接1的key小于根结点key一、子连接2的key大于根结点key1且小于根结点key二、子连接3的key大于根结点key2且小于根结点key三、子连接4的key大于根结点key3)设计
上述的节点计数指子连接的数量,而非节点包含的key的数量3d
因为二、三、4树的查询操做和二叉搜索树的操做一致,再也不赘叙。本次主要完成插入和删除的操做描述
能够参考以前的文章,熟悉二叉树一些基本定义和操做
咱们把1-10的数字拆入到一棵234树中
依次插入一、二、3节点
插入4节点,须要将4节点分裂成3个2节点的操做
至此,插入逻辑介绍完毕
节点的删除逻辑,和二叉树的删除逻辑区别不大。若是是叶子节点,能够直接删除;若是是非叶子节点,须要转换为后继/前驱节点的删除方式,全部均可以转换为极值的删除
至此,咱们的234树的插入和删除操做介绍完了。搞清楚234树的插入和删除操做将是后续红黑树、B树、B+树的前置条件。
目前正在整理红黑树、B树、B+树的内容,敬请期待。同时也欢迎你们分享转发!
系列
欢迎你们关注javascript艺术,留言分享和我交流!