算法2013s扩展数据结构.pptVIP

  • 2
  • 0
  • 约2.05千字
  • 约 27页
  • 2024-02-06 发布于广西
  • 举报

算法设计与分析;纲要;OS-SELECT(i,S):返回动态集合S中第个i最小元素。

OS-RANK(x,S):返回x∈S在S’的元素中的排序的位置;一个OS-树的例子

;实现技巧:使用监视哨

(哑记录)为NIL,令size[NIL]=0.;OS-SELECT(root,5);

Q.为什么不在节点中直接保存它的级别,而是保存子树的大小?

当红黑树被修改后很难维护。

修改操作:INSERT和DELETE.

策略:当插入和删除的时候更新子树的大小。;INSERT(“K〞);不要忘记RB-INSERT和RB-DELETE操作为了维持平衡可能需要修改红黑树。

?重着色:对子树大小没有影响.

?旋转:可以在O(1)的时间内修正子树的大小.

例子:;方法:(e.g.,顺序统计树)

1.选择底层数据结构(红黑树)。

2.确定在数据结构中存储的附加信息。(子树大小)。

3.验证这个信息在修改操作中会被正确的维护(RB-

INSERT,RB-DELETE—不要忘记旋转).

4.利用这些信息设计新的动态集合操作

(OS-SELECT和OS-RANK)。

这些步骤仅仅是指导,不是严格的公式。;目标:维护一个区间的动态集合,例如时间区间.;1.选择底层数据结构。

?使用红黑树,并且以低〔

文档评论(0)

1亿VIP精品文档

相关文档