自学内容网 自学内容网

数据结构——平衡二叉数旋转

1.左旋

1.旋转非根节点


 

 

确定支点:从添加的节点开始,不断地往父节点找不平衡的节点

旋转步骤: 

                  1.以不平衡的点作为支点

                  2.把支点左旋降级,变成左子节点

                  3.晋升原来的右子节点

2.旋转根节点

确定支点:从添加的节点开始,不断地往父节点找不平衡的节点

旋转步骤: 

                    1.以不平衡的节点为支点

                    2.将根节点的右侧往左拉

                    3.原先的右子节点变成新的父节点,并把多余的左子节点让出,给已经降级的根节点的右子节点

2.右旋

1.旋转非根节点

确定支点:从添加的节点开始,不断地往父节点找不平衡的节点

旋转步骤: 

                  1.以不平衡的点作为支点

                  2.把支点右旋降级,变成右子节点

                  3.晋升原来的左子节点

2.旋转根节点

确定支点:从添加的节点开始,不断地往父节点找不平衡的节点

旋转步骤: 

                  1.以不平衡的点作为支点

                  2.将根节点的的左侧往右拉

                  3.原先的左子节点变成新的父节点,并把多余的右子节点出让,给已降级的根节点当左子节点

 3.旋转方式判断

左左:当在根节点的子树的子树上插入新节点

同理可知左右、右右、右左

左左——右旋

左右——根结点左节点为支点左旋,以根结点为支点右旋

右右——左旋

右左——根结点右节点为支点右旋,以根结点为支点左旋

 


原文地址:https://blog.csdn.net/l_tian_tian_/article/details/142440717

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!