| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 第五章 B树和B+树 -> 正文阅读 |
|
[数据结构与算法]第五章 B树和B+树 |
2-3树2-3树是一种多路查找树:2和3的意思就是2-3树包含两种结点 1)2结点包含一个元素和两个孩子(或者没有孩子)。 2)3结点包含一大一小两个元素和三个孩子(或者没有孩子)。(两个元素按大小顺序排列好) 3)2-3树所有叶子结点都在同一层次 ?2-3-4树?2-3-4树也是一种多路查找树:2和3和4的意思就是2-3-4树包含三种结点 3)4结点包含小中大三个元素和四个孩子(或者没有孩子)。 4)2-3-4树所有叶子结点都在同一层次 B树B树也是一种平衡的多路查找树,2-3树和2-3-4树都是B树的特例,我们把树中结点最大的孩子数目称为B树的阶。通常记为m。
2)若根结点不是终端结点,则至少有两棵子树。(至少一个关键字) 4)所有非叶结点的结构如下:
?1.B树的查找操作
Eg:如果Key比第一个关键字K,还小,则去Po指针所指向的子树中查找,如果比最后一个关键字Kn还大.则去Pn指针所指向的子树中查找。 ? ? ? ?3.B树的删除操作
1)如果删除的关键字在终端结点上(最底层非叶子结点): ? ? ? ? ? ? ?2)如果删除的关键字不在终端结点上(最底层非叶子结点)︰需要先转换成在终端结点上,再按照在终端结点上的情况来分别考虑对应的方法。 第①步︰找出这个待删除关键字的相邻关键字,比如说下图中10的相邻关键字就是9或者是11,其实就是这个大小序列中该关键字的直接前驱或者是直接后继关键字。 ?第②步︰将这个待删除的关键字和某个相邻关键字互换,然后删除终端结点的关键字 ? ?第二种情况︰左右子树的关键字数量均等于? m/2???-1,则将这两个左右子树结点合并,然后删除待删除关键字。 ? ?将待删除节点和相邻关键字进行交换 ? ? ?B+树B+树是常用于数据库和操作系统的文件系统中的一种用于查找的数据结构 3)在B+树中,叶结点包含信息,所有非叶结点仅起到索引作用,非叶结点中的每个索引项只含有对应子树的最大关键字和指向该子树的指针,不含有该关键字对应记录的存储地址。 5)在B+树中,有一个指针指向关键字最小的叶子结点,所有叶子结点链接成一个单链表。 其他啦啦啦啦:? ? ? ?? ? ? ?? ? ? ? ? ?? ? ?
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 3:35:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |