【问题标题】:Regarding AVL rotations关于 AVL 旋转
【发布时间】:2011-09-05 09:17:05
【问题描述】:

我正在阅读 Mark Allen Wesis 在数据结构和算法中的 AVL 树

假设要重新平衡的节点是 X。我们有 4 种情况 可能需要修复(两个是另外两个的镜像):一个 插入 X 的左子树的左子树,插入 X的左孩子的右子树,左边的插入 X 的右子树的子树,或右子树中的插入 X 的右孩子。

通过树木旋转恢复平衡。

以下是我对上述文本 sn-p 的问题。

  1. 作者所说的其他两个镜像是什么意思?
  2. 什么是单转和双转对称情况?

谢谢

【问题讨论】:

    标签: algorithm avl-tree


    【解决方案1】:

    假设要插入的节点是 I。书上说有 4 种情况。让我们以我是 X 的左孩子的左孩子为例:

        X
       / \
      ?   ?
     / \ / \
    I  ? ?  ?
    

    这个“镜像”是当我是 X 的右孩子的右孩子时:

        X
       / \
      ?   ?
     / \ / \
    ?  ? ?  I
    

    这是一个“镜像”的原因是您在两种情况下必须做的旋转是相同的,只是左右颠倒了。其他两种情况也是如此,我是 X 的右孩子的左孩子,我是 X 的左孩子的右孩子。

    关于你的第二个问题,想法是一样的。在对称情况下(即镜像情况),您进行相同的旋转,只是左右颠倒。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多