Closed hongjia closed 2 years ago
公式(4.1)中有:
rotate_l\ ((a, x, b), y, c) & = & (a, x, (b, y, c)) \
这里,rotate_l的参数怎么理解?
从直观上,我是理解为(a, x, b)是一棵x为父节点,a、b分别为左右子节点的子树。这样,((a, x, b), y, c)对应于图4.3“树的左右旋转”中的右侧,即在图中以y为根。而上式等号右侧对应的是图4.3的左侧,以x为根的子树。
可这样以来,公式(4.1)定义的操作就应该是右旋转吧,用rotate_r表示合适?下面的算法LEFT-ROTATE将图4.3中的左侧子树变换成了右侧子树。
还是我对(a, x, b)的理解有误?
这两个公式颠倒了,我稍后修改。
已修改:https://github.com/liuxinyu95/AlgoXY/commit/43e2ff598ac5a933911de033a345e886590f29bf
公式(4.1)中有:
这里,rotate_l的参数怎么理解?
从直观上,我是理解为(a, x, b)是一棵x为父节点,a、b分别为左右子节点的子树。这样,((a, x, b), y, c)对应于图4.3“树的左右旋转”中的右侧,即在图中以y为根。而上式等号右侧对应的是图4.3的左侧,以x为根的子树。
可这样以来,公式(4.1)定义的操作就应该是右旋转吧,用rotate_r表示合适?下面的算法LEFT-ROTATE将图4.3中的左侧子树变换成了右侧子树。
还是我对(a, x, b)的理解有误?