平衡二叉树的 左旋右旋 以X为中心单左旋 双左旋等操作到底这么做?苦恼很久了,看书还是不懂.到底是怎么转的我还是没看出来,麻烦说详细点以这道题为例吧:插入序列:12,4,1,7,8,10,9,2,11,6,51
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 16:09:31
平衡二叉树的 左旋右旋 以X为中心单左旋 双左旋等操作到底这么做?苦恼很久了,看书还是不懂.到底是怎么转的我还是没看出来,麻烦说详细点以这道题为例吧:插入序列:12,4,1,7,8,10,9,2,11,6,51
平衡二叉树的 左旋右旋 以X为中心单左旋 双左旋等操作到底这么做?
苦恼很久了,看书还是不懂.
到底是怎么转的我还是没看出来,麻烦说详细点
以这道题为例吧:
插入序列:12,4,1,7,8,10,9,2,11,6,5
1、先插入12成为根
2、插入4在12的左子树,没有旋转
3、插入1在4的左子树,以4为中心向右单旋转,结果如下:
4
/ \
1 12
4、插入7在12的左子树,没有旋转
5、插入8在7的右子树,以8开始先左后右双旋转,结果如下:
4
/ \
1 8
/ \
7 12
6、插入10在12左子树,以8为中心开始向左单旋转,结果如下:
8
/ \
4 12
/ \ /
1 7 10
7、插入9在10 的左子树,以10为中心向右单旋转,结果如下:
8
/ \
4 10
/ \ / \
1 7 9 12
8、插入2在1的右子树,没有旋转
9、插入11在12 的左子树,没有旋转
10、插入6在7的左子树,没有旋转
11、插入5在6的左子树,以6为中心向右单旋转,结果如下:
8
/ \
4 10
/ \ / \
1 6 9 12
\ / \ /
2 5 7 11
平衡二叉树的 左旋右旋 以X为中心单左旋 双左旋等操作到底这么做?苦恼很久了,看书还是不懂.到底是怎么转的我还是没看出来,麻烦说详细点以这道题为例吧:插入序列:12,4,1,7,8,10,9,2,11,6,51
首先插入一个根,然后插入子树,左边是小的,右边是大的插.如12、7、8.先拆除4跟12的联系,接上8,因为8是三个数的中间值,然后左边小右边大的插入上去.同理下面也是.