中文名 | 树旋转 | 外文名 | Tree rotation |
---|---|---|---|
类 型 | 子树调整 | 对 象 | 二叉树 |
旋转方式 | 左旋转和右旋转 | 特 点 | 两种旋转呈镜像,且互为逆操作 |
应 用 | 需要调整树的局部平衡性的场合 |
树旋转包括两个不同的方式,分别是右旋转(以P为转轴)和左旋转(以Q为转轴)。两种旋转呈镜像,而且互为逆操作。
下图示意了两种树旋转过程中, 子树的初态和终态:
--- --- |Q||P| --- --- /\rightrotation/\ --- --- -------------> --- --- |P||Z||X||Q| --- --- <------------- --- --- /\leftrotation/\ --- --- --- --- |X||Y||Y||Z| --- --- --- ---
其中, 右旋转详细步骤如下图 R0, R1, R2 三个步骤所示, 左旋转则如 L0, L1, L2 三个步骤所示。
__ /\ --- / --- |Q|/|Q| --- --- --- / --- --- |P|/\R1|P|//\ --- |Q|R0 --- / --- -----> --- / --- R2|P| --- ----->/\/|Z|//|Z|-----> --- /\ --- --- --- --- --- --- /\ --- --- |X||Y||X||Y| --- --- |P||Z| --- --- --- --- |X||Q| --- --- __ --- --- /\/\/\ --- --- L2 --- \ --- L0 --- --- |X||Y|<-----|P|\|P|<-----|Y||Z| --- --- --- \ --- L1 --- --- --- --- /\\|Q|<-----/\|Q| --- \ --- --- \ --- |X|\\|X|\/\ --- --- --- --- --- --- |Y||Z||Y||Z| --- --- --- ---
两棵二叉树之间的旋转距离指的是, 其中一棵树通过尽可能少的树旋转变换到另一棵树, 此过程中所使用的旋转次数. 对于一个包含相同个数节点的二叉树集合, 它们两两之间的距离可以构成一个度量空间. 是否存在一个算法, 能在多项式时间内计算两个二叉树之间的旋转距离, 目前还是一个未决问题。
在离散数学中,树旋转(英语:Tree rotation)是在二叉树中的一种子树调整操作, 每一次旋转并不影响对该二叉树进行中序遍历的结果. 树旋转通常应用于需要调整树的局部平衡性的场合。
可以旋转屏幕的
上面的图示仅描述了如何进行局部变换, 在实际应用中, 还需要将原有父节点的父节点纳入考虑范围. 以上述右旋转为例, 如果 Q 是其父节点 root 的左子节点, 则在旋转完后 root 的左子节点需要修改指向节点 P. 但这一点并没有体现在上面的图示中.
在接下来的实现中, 假设从树中任一节点 N 能够借由 N.left 访问其左子节点, N.right 访问其右子节点, N.parent 访问其父节点. 此外, 称旋转后变为父亲的节点为转轴pivot, 称 pivot 在旋转前的父节点为 parent, 而 parent 在旋转前的父节点为 root. 则右旋转过程可用伪代码表示为:
funcrotate_right(pivot): letparent=pivot.parent letroot=parent.parent //R0 parent.left=pivot.right ifpivot.right!=nil:pivot.right.parent=parent //R1 pivot.parent=root ifparent==root.left: root.left=pivot else: root.right=pivot pivot.right=parent parent.parent=pivot
用一种高密度聚乙烯分别与两种线形低密聚乙烯进行共混制备了两种旋转模塑聚乙烯专用树脂 ,并使用双轴旋转模塑机生产了两种规格的大型中空制品 ,研究了不同质量配比对共混树脂力学性能的影响 ;通过红外光谱、扫描电镜、X射线衍射分析了旋转模塑制品的热稳定性及不同成型温度和风冷时间下的微观结构 ,制品经垂直冲击跌落、正弦定频垂直振动、耐压力、高低温和空投试验考察了旋转模塑制品的环境适应性。实验结果表明 ,经共混改性得到的两种原料可以作为旋转模塑专用树脂。
红黑树树的旋转
当我们在对红黑树进行插入和删除等操作时,对树做了修改,那么可能会违背红黑树的性 质。
为了保持红黑树的性质,我们可以通过对树进行旋转,即修改树种某些结点的颜色及指针结构,以达到对红黑树进行插入、删除结点等操作时,红黑树依然能保持它特有的性质(五点性质)。
如右图。
大椰树下生长着无数丰硕椰果,其艳丽的色泽、逼真的造型使小朋友充分享受到神秘的南国风情。小朋友通过上下肢协调配合,攀爬、乘坐其上,在旋转中体验新的平衡经验,促进感觉统合能力的提高 。
SBT的旋转(Rotations)与其他许多高级BST相同。它是下面提到的Maintain操作的基础。
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