算法导论Ch1art3红黑树、数据结构扩张.ppt

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * §14.1 动态顺序统计 (续) 维护子树的Size OSSelect和OSRank之所以能快速地计算,原因是OS树中给出了Size信息。但若在修改RB树的基本操作中不能有效地维护Size信息,这些新操作就失去了意义。一般地: 对基本数据结构进行扩充信息,必须保证能有效地维护这些信息,所谓有效维护附加信息是指:扩充后的基本操作(主要是指修改)与扩充前的基本操作的渐近时间相同 * §14.1 动态顺序统计 (续) 插入 RB树上插入分两阶段 Phase1:从根自下,插入新结点,增加Size后,只要将:搜索插入位置路径上各结点的Size加1,新结点Size置为1即可,附加成本O(lgn) Phase2:从叶子向上调整:变色,旋转;仅旋转改变了RB树结构,故为维护Size,只需考虑对该操作修改。 旋转操作是局部操作,仅有执行旋转的边上(轴)的两个结点的Size域可能违反其定义,故只需在旋转操作尾部加上相应修改Size操作即可 * §14.1 动态顺序统计 (续) 例如LeftRotate(T,x) (右旋与此对称)

文档评论(0)

1亿VIP精品文档

相关文档