• 二叉树左旋和右旋


    转自:http://blog.csdn.net/tuhuolong/article/details/6844850

    树的旋转,分为左旋和右旋,以下借助图来做形象的解释和介绍:

    1.左旋(右子为轴,当前结点左旋)

    如上图所示:

    当在某个结点pivot上,做左旋操作时,我们假设它的右孩子y不是NIL[T],pivot可以为树内任意右孩子而不是NIL[T]的结点。

    左旋以pivot到y之间的链为“支轴”进行,它使y成为该孩子树新的根,而y的左孩子b则成为pivot的右孩子。

    来看算法导论对此操作的算法实现(以x代替上述的pivot):

     LEFT-ROTATE(T, x)
    1  ← right[x] ▹ Set y.
    2  right[x] ← left[y]      ▹ Turn y's left subtree into x's right subtree.

    3  p[left[y]] ← x
    4  p[y] ← p[x]             ▹ Link x's parent to y.
    5  if p[x] = nil[T]
    6     then root[T] ← y
    7     else if x = left[p[x]]
    8             then left[p[x]] ← y
    9             else right[p[x]] ← y
    10  left[y] ← x             ▹ Put x on y's left.
    11  p[x] ← y

    2.右旋

    右旋与左旋差不多,再此不做详细介绍。

  • 相关阅读:
    VMware6.0-vCenter的安装准备及安装
    VeeamBackup9.5安装与配置
    VeeamOne(Free Edition 9.5 )-安装与配置
    UIDatePicker
    UIImagePicker照片选择器
    UIImageView
    UILabel
    UIScrollView 期本使用方法
    UISegment
    UISlide
  • 原文地址:https://www.cnblogs.com/zl1991/p/4705745.html
Copyright © 2020-2023  润新知