您的位置:首页 > 理论基础 > 数据结构算法

《算法导论》笔记 第14章 14.2 如何扩张数据结构

2014-04-25 11:15 369 查看

【笔记】

四个步骤:

1) 选择基础数据结构

2) 确定要在基础数据结构中添加哪些信息

3) 验证可用基础数据结构上的基本修改操作来维护这些新添加的信息

4) 设计新的操作

【练习】

14.2-1 说明如何能在扩张的顺序统计树上,以最坏情况O(1)的时间来支持动态集合查询操作MINIMUM,MAXIMUM,SUCCESSOR和PREDECESSOR。顺序统计树上的其它操作的渐进性能应不受影响。

对MINIMUM,MAXIMUM,新加一个域维护最值即可。

14.2-2 能否在不影响任何红黑树操作性能的前提下,将结点的黑高度作为一个域来维护?

可以

14.2-3 能否将红黑树中结点的深度作为一个域来进行有效地维护?

*14.2-4 设⊕为满足结合律的二元运算符,设a为结点中的一个域,假设在每个结点增加一个域f[x]=a[x1]⊕a[x2]...⊕a[xm],其中x1,x2...xm是以x为根的子树中,按中序排列的所有结点。证明一次旋转后,可以在O(1)时间内对f域做出合适的修改。

*14.2-5 增加操作RB-ENUMERATE(x,a,b)来扩张红黑树。该操作输出所有的关键字k,使在以x为根的红黑树中有a<=k<=b。描述如何在Θ(m+lgn)时间内实现,其中m为输出的关键字数,n为树中的内部结点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: