Board logo

标题: 基于树的查找--------------平衡二叉查找树(2) [打印本页]

作者: yuyang911220    时间: 2016-8-8 11:18     标题: 基于树的查找--------------平衡二叉查找树(2)

1LL型。(左边重,需往右边转)

       

        LL型的判断依据就是:A节点平衡因子为2B节点的平衡因子为1.

        即: A->bf = 2, B->bf = 1.

        如果失衡类型是LL型,这调整算法如下:

       



       



        以B点为轴,将A节点做顺时针旋转,然后将B的右子树作为A的左子树。

        算法的代码实现如下:(可结合上面的图看)

       
该算法的过程实现起来并不难,主要还是有人家的理论在这儿放着。详细的过程看代码注释。
                        2RR型。与LL型是对称的。(右边重,需往左边转)
       

                        RR型的判断依据就是:A节点平衡因子为-2B节点的平衡因子为-1.
       
                        即: A->bf = -2, B->bf = -1.
       
                        如果失衡类型是RR型,这调整算法如下:
       
                               
       
                        该类型的调整和LL型调整差不多。以B节点为轴,将A节点作逆时针旋转,然后,把B       
                        左子树给A,作为A的右子树。
       
                        算法的代码实现如下:       
       
                               
该类型和LL型是对称的,只要理解了其中一个,另外一个很好理解。

                        3LR型。(左边,右边都重,都需要转)
       
       
                        该类型又引入了一个特殊节点C。该节点很好判断,和判断B节点一样,插入节点的       
                        “祖先节点”那一线上,A的下一个是BB的下一个就是C节点。
       
                               
       
                        LR型的判断依据就是:A节点平衡因子为2B节点的平衡因子为-1.
       
                        即: A->bf = 2, B->bf = -1.
       
                        如果失衡类型是LR型,这调整算法如下:
       
                       




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0