河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.3 树表的查找(2/2)

一种外查找的数据组织结构 B-树中所有结点的最大子树个数称为B-树的阶,通常用m表示,从查找效 率考虑,要求m≥3。一棵m阶B-树或者是一棵空树,或者是满足下列要求的m叉 树: (1)树中每个结点至多有m棵子树(即至多含有m-1个关键字, 设Max=m-1)。 (2)若根结点不是叶子结点,则根结点至少有两棵子树。 (3)除根结点外,所有结点至少有m/2棵子树(即至少含有 m/2-1个关键字,设Min=m/2-1)。 1/28

(4)每个结点的结构如下: n p0 key1 p1 key2 p2 . keyn pn (5)所有的叶子结点在同一层。 m/2-1≤n≤m-1,并且满足有序性 2/28

一棵3阶B-树 10 3 6 13 18 1 2 4 5 7 9 11 12 14 17 19 20 根结点 外部结点层 叶子结点层 高度h=3 m=3 非叶子结点至少有m/2=2个孩子,至多有m=3个孩子(这类结 点的关键字个数为1~2个) 根结点有两个孩子结点 所有叶子结点都在同一层上 3/28

1. B-树的查找 在B-树中查找给定关键字的方法类似于二叉排序树上的查找,不同的是在 每个结点上确定向下查找的路径不一定是二路的,而是n+1路的(n为该结点的 关键字个数)。 10 3 6 13 18 1 2 4 5 7 9 11 12 14 17 19 20 根结点 外部结点层 叶子结点层 高度h=3 4/28

假设m阶B-树的高度为h(h中不含外部结点层,外部结点层看成是第 h+1层),访问的结点个数不超过O(h)。 那么,含有N个关键字的m阶B-树可能达到的最大高度h是多少呢?显然 在关键字个数固定时,每一层关键字个数越少树的高度越高。 第1层最少结点数为1。 第2层最少结点数为2。 第3层最少结点数为2m/2。 第4层最少结点数为2m/2 2个。 . 第h层最少结点数为2m/2 h-2个。 第h+1层(外部结点层)最少结点数为2m/2 h-1个。 m阶B-树中共含有N个关键字,则外部结点必为N+1个,即N+1≥2m/2 h-1,有 h-1≤logm/2(N+1)/2,则h≤logm/2(N+1)/2+1=O(logmN)。 m/2-1≤n≤m-1, m/2≤结点子树数≤m 5/28

2. B-树的插入 (1)利用前述的查找过程找到关键字k的插入结点p(注意m阶B-树的插 入结点一定是某个叶子结点)。 (2)判断结点p是否还有空位置,即其关键字个数n是否满足n<Max (Max=m-1): ① 若n<Max成立,说明结点p有空位置,直接把关键字k有序插入到结 点p中(插入关键字k后结点p的所有关键字仍有序)。 6/28

② 若n=Max,说明结点p没有空位置,需要把结点p分裂成两个。 p k1 . ks . kn . 中间关键字 k1 . ks-1 . ks . ks+1 . kn 分裂 如果此时双亲结点的关键字个数也超过Max,则要再分裂,再往 上插,直至这个过程传递到根结点为止。如果根结点也需要分裂,则 整个m阶B-树增高一层。 7/28

【例9.16】关键字序列为(1,2,6,7,11,4,8,13,10,5,17, 9,16,20,3,12,14,18,19,15),创建一棵5阶B-树。 解:这里m=5,结点中最大关键字个数Max=m-1=4。 1 1 2,6,7 1 2 6 7 8/28

11 1 2 6 7 11 1 2 7 11 6 4,8,13 1 2 4 7 8 11 13 6 10 1 2 4 7 8 10 11 13 6 1 2 4 6 10 7 8 11 13 9/28

5,17,9,16 1 2 4 5 6 10 7 8 9 11 13 16 17 20 1 2 4 5 6 10 7 8 9 11 13 16 17 20 1 2 4 5 6 10 16 7 8 9 11 13 17 20 10/28
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.3 树表的查找(1/2).pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.1 查找的基本概念 9.2 线性表的查找.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.6 拓扑排序 8.7 AOE网与关键路径.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.5 最短路径.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.4 生成树和最小生成树.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.3 图的遍历.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.1 图的基本概念 8.2 图的存储结构.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.9 树算法设计和并查集.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.6 线索二叉树 7.7 哈夫曼树 7.8 二叉树与树、森林之间的转换.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.4 二叉树的层次遍历 7.5 二叉树的构造.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.3 二叉树先序、中序和后序遍历.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.2 二叉树.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.1 树.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第6章 数组和稀疏矩阵.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第5章 递归.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第4章 串.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第3章 栈和队列 3.2 队列.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第3章 栈和队列 3.1 栈.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第2章 线性表 2.5 线性表的应用.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第2章 线性表 2.3 线性表的链式存储结构 2.4 顺序表和链表的比较.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.4 哈希表查找.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第10章 排序 10.1 排序的基本概念 10.2 插入排序 10.3 交换排序.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第10章 排序 10.4 选择排序.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第10章 排序 10.5 归并排序 10.6 基数排序 10.7 各种内排序方法的比较和选择.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第10章 排序 10.8 外排序.pptx
- 《Python数据分析》课程电子教案(PPT课件)第1章 数据分析与可视化概述新.pptx
- 《Python数据分析》课程电子教案(PPT课件)第2章 Python编程基础.pptx
- 《Python数据分析》课程电子教案(PPT课件)第3章 NumPy数值计算基础.pptx
- 《Python数据分析》课程电子教案(PPT课件)第4章 pandas统计分析基础.pptx
- 《Python数据分析》课程电子教案(PPT课件)第5章 Pandas数据载入与预处理.pptx
- 《Python数据分析》课程电子教案(PPT课件)第6章 Matplotlib数据可视化基础.pptx
- 《Python数据分析》课程电子教案(PPT课件)第7章 利用Seaborn绘图.pptx
- 《Python数据分析》课程电子教案(PPT课件)第8章 pyecharts可视化.pptx
- 《Python数据分析》课程电子教案(PPT课件)第9章 时间序列数据分析.pptx
- 《Python数据分析》课程电子教案(PPT课件)第10章 SciPy科学计算.pptx
- 《R语言》课程教学资源(PPT课件)第01章 进入R的世界.pptx
- 《R语言》课程教学资源(PPT课件)第02章 R语言基础.pptx
- 《R语言》课程教学资源(PPT课件)第03章 R函数与流程控制.pptx
- 《R语言》课程教学资源(PPT课件)第04章.pptx
- 《R语言》课程教学资源(PPT课件)第05章 基本图形.pptx
