`

《算法导论》第14章 数据结构的扩张 (2)

 
阅读更多


在上一节中,我们为树结点添加size域表示每颗子树的大小,即包含的结点个数,扩张了
二叉查找树为其增加顺序统计量的查找功能。更为自然的想法是直接添加顺序统计量rank域
到每个树结点上。这一节我们就来看下在这样的设计下,如何扩张来完成上一节相同的功能。

当我们插入一个结点到二叉树中,假设它的顺序统计量为5,那么之前二叉树中顺序统计量
大于5的结点都要更新。也就是说插入一个新结点到对应的位置后,要不断地查找其后继,
完成rank域的更新。所以可以结合习题14.2-1,再添加两个指针域prev和next指向前趋和后继,
使查找前趋和后继在O(1)内完成。

下面来看具体代码。


通过这一节和上一节的对比,可以看出在步骤(2)中对基础数据结构添加不同的域,会对
步骤(3)和(4)改写和添加新的操作产生很大影响。因此,在扩张数据结构时可以采用
试错法,尝试添加不同的域,权衡各种方案的优劣。


分享到:
评论

相关推荐

    算法导论第二十四章答案

    算法导论第二十四章答案 算法导论第二十四章答案 算法导论第二十四章答案

    算法导论第十七章习题解答

    第十七章通常涉及的是图算法,这部分内容在实际编程中有着广泛的应用,比如网络路由、最短路径计算、任务调度等。以下是对第十七章习题解答的详细解析。 1. **图的基本概念**:图是由顶点(节点)和边构成的数据...

    算法导论第十四章习题解答

    《算法导论》是计算机科学领域的一本经典教材...总的来说,《算法导论》第十四章的习题解答涵盖了图论的许多重要概念,通过实践这些习题,我们可以提升在图算法方面的理论和实践水平,为未来解决复杂问题打下坚实基础。

    算法导论第四章答案

    算法导论第四章答案算法导论第四章答案算法导论第四章答案算法导论第四章答案

    算法导论第二十四章习题解答

    通过深入学习和解决《算法导论》第二十四章的习题,你将能更好地掌握高级算法和数据结构,这对任何IT专业人员来说都是宝贵的技能。记住,实践是检验理论的最好方式,不断练习和应用这些知识,将使你在面对实际问题时...

    算法导论第二十章习题解答

    《算法导论》第二十章习题解答涵盖了各种高级算法问题,主要涉及图论和网络流等内容。在这一章中,作者深入探讨了如何解决实际问题,如最短路径、最大流最小割以及网络调度等问题。以下是部分习题的解析和相关知识点...

    算法导论章节答案(31~35章)

    《算法导论》是计算机科学领域的一本经典教材,涵盖了广泛的算法分析和设计技术。...以上是《算法导论》第31至35章的核心知识点。学习这些内容有助于提升对算法的理解和应用能力,对于编程和问题解决具有重要意义。

    算法导论 第二十五章 答案

    算法导论 第二十五章 答案 算法导论 第二十五章 答案 算法导论 第二十五章 答案

    算法导论第15章课后习题答案

    算法导论第15章-动态规划的课后习题参考答案,对于算法爱好者而言,是不错的参考资料。

    算法导论 数据结构与算法 算法与数据结构

    算法导论英文原版,数据结构与算法,算法导论英文原版,数据结构与算法

    算法导论第二十三章习题解答

    《算法导论》第二十三章主要探讨的是图算法,包括图的基本概念、图的表示方法、图的遍历以及各种图的特殊结构如最小生成树、最短路径等。本章习题解答涵盖了这些核心知识点,旨在帮助读者深入理解和应用所学理论。 ...

    算法导论-麻省理工(中文)

     第十四章 扩充的数据结构(Augmenting Data Structures)  第四部分(Part IV) 高级的设计与分析技术(Advanced Design and Analysis Techniques)  第十五章 动态规划(Dynamic Programming)  第十六章 贪婪...

    数据结构算法导论英文版

    - **第十四章:流网络** - 流网络的概念与模型 - 最大流问题及其求解算法 - 网络流的实际应用案例 - **第十五章:线性规划** - 线性规划的基本概念与数学模型 - 简单x法与线性规划的求解 - 线性规划的应用...

    算法导论(现代计算机常用数据结构和算法)

    算法导论(现代计算机常用数据结构和算法)

    算法导论第三版及2-25章部分答案

    本压缩包包含两份文件,分别是“算法导论.pdf”和“算法导论第三版课后答案-2-25章(部分中文).pdf”。前者很显然是《算法导论》第三版的电子版,读者可以通过这份PDF文档深入学习书中涵盖的各种算法,如排序、搜索...

    算法导论——所有算法和数据结构的C++实现

    所有代码都是在我学习这本书时亲手敲出来的,并且调试正确了,包括:第三部分到第六部分(即10-26章),外加第七部分31和32章所有的算法和数据结构以及编程习题还有思考题的C++实现源代码; 第一、二部分学习的较早...

    算法导论第三版各种数据结构的c/c++源代码

    请参考算法导论第三版英文版Introduction to Algorithms 3rd Edition,本程序为第10章到第14章常用数据结构的c/c++实现。 IDE环境为vc++ 6.0。 主要包括: 队列 双向链表 哈希表 二叉搜索树

    算法导论大作业:股票买卖最佳时期系列问题 南开大学 算法导论源码.zip

    算法导论大作业:股票买卖最佳时期系列问题 南开大学 算法导论源码算法导论大作业:股票买卖最佳时期系列问题 南开大学 算法导论源码算法导论大作业:股票买卖最佳时期系列问题 南开大学 算法导论源码算法导论大作业...

    算法导论 第二版 (完整版)

    第14章 数据结构的扩张 第四部分 高级设计和分析技术 导论 第15章 动态规划 第16章 贪心算法 第17章 平摊分析 第五部分 高级数据结构 概述 第18章 B树 第19章 二项堆 第20章 斐波那契堆 第21章 用于不相交集合的数据...

    算法导论章节答案(21~25章)

    《算法导论》是计算机科学领域的一本经典教材,涵盖了广泛的算法理论和实践知识。21至25章是该书的重要部分,涉及到许多关键的算法设计和分析方法。以下是对这五章主要内容的详细解释: 第21章:图算法 在这一章中...

Global site tag (gtag.js) - Google Analytics