据我所知,Zig-Zag旋转基本上是AVL双旋转。 Zig-zig旋转是否与左旋转或右旋转两次不同?我认为他们不是,但如果我只是为了下面的图像做了两次正确的旋转,我会得到一个错误的答案。
如果它确实不是一回事,那么假设Zig-zig旋转是一种特殊类型的旋转是否正确?
答案 0 :(得分:2)
不同之处在于您使用哪些节点进行旋转以及执行这些旋转的特定顺序。让我们将我们用作参考的节点作为基本节点进行旋转,因此在zig zig的情况下,我们有2个基本节点,第一个是示例中x
的父节点,即p
,我们首先沿此节点进行右旋转,然后沿节点x
进行右旋转。在您提到的情况下,将在同一节点上执行2次右旋转。因此,总结它们在我们用于旋转的节点和我们使用它们的顺序方面是不同的,zig zig在对节点进行右旋或左旋之前首先执行父旋转的右旋或左旋。