[理学]数据结构8
3.二叉排序树的插入算法 根据动态查找表的定义,“插入”操作在查找不成功时才进行; 索引顺序查找的平均查找长度 = 查找“索引”的平均查找长度 + 查找“顺序表”的平均查找长度 9.2 动 态 查 找 表 ADT DynamicSearchTable { 抽象数据类型动态查找表的定义如下: 数据对象D: 数据关系R: 数据元素同属一个集合。 D是具有相同特性的数据元素的集合。 每个数据元素含有类型相同的关键字, 可唯一标识数据元素。 InitDSTable(DT) 基本操作P: DestroyDSTable(DT) SearchDSTable(DT, key); InsertDSTable(DT, e); DeleteDSTable(T, key); TraverseDSTable(DT, Visit()); }ADT DynamicSearchTable 操作结果: 构造一个空的动态查找表DT。 InitDSTable(DT); 销毁动态查找表DT。 DestroyDSTable(DT); 初始条件: 操作结果: 动态查找表DT存在; 若DT中存在其关键字等于 key的数据元素,则函数值为该元素的值或在表中的位置,否则为“空”。 SearchDSTable(DT, key); 初始条件: 操作结果: 动态查找表DT存在,key 为和关键字类型相同的给 定值; 动态查找表DT存在, e 为待插入的数据元素; InsertDSTable(DT, e); 初始条件: 操作结果: 若DT中不存在其关键字 等于 e.key 的 数据元素, 则插入 e 到DT。 动态查找表DT存在,key 为和关键字类型相同的给 定值; DeleteDSTable(T, key); 初始条件: 操作结果: 若DT中存在其关键字等于key的数据元素,则删 除之。 动态查找表DT存在,Visit 是对结点操作的应用函数; TraverseDSTable(DT, Visit( )); 初始条件: 操作结果: 按某种次序对DT的每个结 点调用函数 Visit( ) 一次且至 多一次。一旦 Visit( ) 失败, 则操作失败。 一、二叉排序树 (二叉查找树) 1.定义 2.查找算法 3.插入算法 4.删除算法 5.查找性能的分析 (1)若它的左子树不空,则左子树上 所有结点的值均小于根结点的值; 1.定义: 二叉排序树或者是一棵空树;或者 是具有如下特性的二叉树: (3)它的左、右子树也都分别是二叉 排序树。 (2)若它的右子树不空,则右子树上 所有结点的值均大于根结点的值; 50 30 80 20 90 10 85 40 35 25 23 88 例如: 是二叉排序树。 66 不 通常,取二叉链表作为 二叉排序树的存储结构 typedef struct BiTNode { // 结点结构 struct BiTNode *lchild, *rchild; // 左右孩子指针 } BiTNode, *BiTree; TElemType data; 2.二叉排序树的查找算法: 1)若给定值等于根结点的关键字,则查找成功; 2)若给定值小于根结点的关键字,则继续在左子树上进行查找; 3)若给定值大于根结点的关键字,则继续在右子树上进行查找。 否则, 若二叉排序树为空,则查找不成功; 50 30 80 20 90 85 40 35 88 32 例如: 二叉排序树 查找关键字 == 50 , 50 50 35 , 50 30 40 35 50 90 , 50 80 90 95 , 从上述查找过程可见, 在查找过程中,生成了一条查找路径: 从根结点出发,沿着左分支或右分支逐层向下直至关键字等于给定值的结点; 或者 从根结点出发,沿着左分支或右分支逐层向下直至指针指向空树为止。 ——查找成功 ——查找不成功 若二叉排序树为空树,则新插入的结点为新的根结点;否则,新插入的结点必为一个新的叶子结点,其插入位置由查找过程得到。 (1)被删除的结点是叶子; (2)被删除的结点只有左子树或者只有右子树; (3)被删除的结点既有左子树,也有右子树。 4.二叉排序树的删除算法 可分三种情况讨论: 和插入相反,删除在查找成功之后进行,并且要求在删除二叉排序树上某个结点之后,仍然保持二叉排序树的特性。 50 30 80 20 90 85 40 35 88 32 (1)被删除的结点是叶子结点 例如: 被删关键字 = 20
您可能关注的文档
- [理学]导数的概念与运算.ppt
- [理学]山东大学数学学院数学实验作业题.doc
- [理学]导数.ppt
- [理学]岩浆岩11.ppt
- [理学]工厂供电.doc
- [理学]巢湖实习-合肥工业大学.ppt
- [理学]尚学堂马士兵J2Se上半部分.ppt
- [理学]工科数学分析课件.ppt
- [理学]工程优化课件.ppt
- [理学]工程优化课件1.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)