AVL树的左单旋、右单旋、左右旋、右左旋

下面是情景剧,有三个角色,分别是root,pivot,和底节点。

图片引自:https://blog.csdn.net/u012361418/article/details/46535293

《AVL树的左单旋、右单旋、左右旋、右左旋》

按照这三个节点从上到下节点的顺序,可以分为四种情况:分别称作左左型、右右型、左右型、右左型;

1.左左型(pivot是根节点的左节点,底节点是pivot的左节点)

这个时候我们把要进行的动作成为右单旋,因为似乎是顺时针旋转;(统一把顺时针称为右旋,逆时针称为左旋)

pivot对根节点说:

    我现在是你的左节点;

    我希望你做我的右节点,

    这样刚好我原有的右节点,作你的左节点。

    完美替代!!!

    于是乎愉快了完成了调整~

2.右右型

这个时候需要把根节点进行向左旋转,称之为左旋;

pivot对根说:

    我现在是你的右节点,

    我想让你做我的左节点,

    这样刚好我原有的左节点,做你的右节点;

    又一次完美的旋转~

3.左右型

大家不要怕!不要逃~~~因为这一次终于有底节点的戏份了!!!(感动。。。。)

首先,底节点对pivot说:

    我是你的右节点,

    我想你作我的左节点,

    这样我原有的左节点,刚好给你作右节点;

哈哈!!!

你猜怎么着??

现在变成左左型啦~

那接着之前第一种分析的情形就可以继续啦~

我还是在这里说一下吧。(毕竟这个时候原来的底节点变成新的Pivot了呢。。。。戏份陡增有木有。。)

这个时候新的pivot(原来的底节点)对根节点说:

    我现在是你的左节点,

    我想你做我的右节点,

    这样我原来的右节点刚好做你的左节点!

到这里,就完美地成为AVL树啦~

4.右左型(右左旋)

底节点右旋,然后变成右右型后,根节点左旋;

这一次底节点的戏份也比较多~

首先是底节点对Pivot说:

    我是你的左节点,

    我想让你做我的右节点,

    这样我的右节点刚好作你的左节点;

    然后就变成右右型啦(此时底节点变成新的Pivot)

    然后就是右右型的处理,这里就留给你练习吧~~

    原文作者:AVL树
    原文地址: https://blog.csdn.net/qq_32720539/article/details/79671882
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞