- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
平衡二叉树算法及代码
Size Balanced Tree
Size Balanced Tree(SBT)是一种平衡二叉查找树。它的论文由中国广东中山纪念中学的陈启峰
于2006 年底完成,并在Winter Camp 2007 中发表。由于SBT 的拼写很容易找到中文谐音,它
常被中国的OIer 们戏称为“傻X 树”、“Super BT ”等。但它的性能并不SB,编写起来也并
不BT。恰恰相反,SBT 易于实现,且据陈启峰论文中所言,“这是目前为止速度最快的高级二
叉搜索树”。它能在O(logn)的时间内完成所有BST 的相关操作。而且由于SBT 赖以保持平衡
的是Size 域而不是其他“无用”的域,它可以很方便地实现动态顺序统计中的select 和rank 。
性质
Size Balanced Tree (SBT )是一种通过大小(Size )域来保持平衡的二叉搜索树,它也因此得
名。它总是满足:
对于SBT 的每一个结点 t :
1. 性质(a) s[right[t] ] ≥s[left[left[t]]],s[right[left[t]]]
2. 性质(b) s[left[t] ] ≥s[right[right[t]]] ,s[left[right[t]]]
即每棵子树的大小不小于其兄弟的子树大小。
图1
如图(圈代表结点,三角代表SBT,下同):
1. s[R] ≥ s[A],s[B]
2. s[L] ≥ s[C],s[D]
旋转
SBT 的旋转(Rotations)与其他许多高级BST 相同。它是下面提到的Maintain 操作的基础。
图2
[编辑]左旋转
Left-Rotate (t)
1 k ← right[t]
2 right[t] ← left[k]
3 left[k] ← t
4 s[k] ← s[t]
5 s[t] ← s[left[t]] + s[right[t]] + 1
6 t ← k
右旋转
Right-Rotate(t)
1 k ← left[t]
2 left[t] ← right[k]
3 right[k] ← t
4 s[k] ← s[t]
5 s[t] ← s[left[t]] + s[right[t]] + 1
6 t ← k
保持性质(Maintain)
当我们插入或删除一个结点后,SBT 的大小就发生了改变。这种改变有可能导致性质(a)或(b)被
破坏。这时,我们需要用Maintain 操作来修复这棵树。Maintain 操作是SBT 中最具活力的一
个独特过程;Maintain(T)用于修复以T 为根的 SBT 。调用Maintain(T)的前提条件是T 的子树都
已经是SBT 了。
我们需要讨论的有4 种情况。由于性质a 和性质b 是对称的,所以我们仅仅详细的讨论性质a 。
1. 第一种情况:s[left[left[t]]s[right[t]]
图3 (同图1)
如图3,执行完Insert(left[t],v)后发生S[A]S[R],我们可以执行以下的指令来修复SBT :
1. 首先执行Right-Ratote(t),这个操作让图3 变成图4 ;
图4
2. 在这之后,有时候这棵树还仍然不是一棵SBT,因为 s[C]s[B] 或者 s[D]s[B]
也是可能发生的。所以就有必要继续调用Maintain(T)。
3. 结点L 的右子树有可能被连续调整,因为有可能由于性质的破坏需要再一次运
行Maintain(L)。
2. 第二种情况:s[right[left[t]]s[right[t]]
图5
在执行完Insert(left[t],v)后发生s[B]s[R],如图5,这种调整要比情况1 复杂一些。
您可能关注的文档
最近下载
- 关于医院卫生院基孔肯雅热防控工作方案(精选).docx
- (新课标)新外研版中职(英语基础模块1)Unit 5 We Have Only One Earth 《Listening & Speaking》说课稿.doc
- 透析患者骨折护理.pptx
- 关于中国共产党的纲领.ppt VIP
- 竞争对手分析报告研读.pptx VIP
- 人教版八年级物理上册第三章《物态变化》测试题(含答案) .pdf VIP
- DLT 5202-2022 电能量计量系统设计规程.pdf VIP
- 压铸件毛坯质量检验标准规范.doc VIP
- 平车运送法操作流程与考核评分标准.docx VIP
- 八年级物理上册第三章《物态变化》测试题-人教版(含答案) .pdf VIP
文档评论(0)