您好、欢迎来到现金彩票网!
当前位置:ds视讯 > 非平衡树 >

平衡树生成4种情况看不懂。

发布时间:2019-08-28 21:56 来源:未知 编辑:admin

  “发现”不平衡的结点A的左子树B是左插入结点后仍然平衡的子树,也就是说B的左子树插入一个结点(使高度加一)导致A结点不平衡。我们推断,B结点的左右子树在插入前是等高的,否则在插入后,要么不需要旋转(插入前B的右子树比左子树高一),要么在发现A不平衡之前B已经不平衡了(插入前B的左子树比右子树高一);同时A的右子树高度一定和B的子树高度一致,否则在插入前,要么A已经不平衡了(A的右子树高度比B的右子树高度低一),要么不需要旋转(A的右子树高度比B的右子树高度高一)。

  如何让A重新平衡而不改变二叉搜索树的性质呢?如果把B作为A的父节点问题就解决了,这时仍要满足BA的关系,所以A应该改为B的右子树,而原先B的右子树应该变为A的左子树,因为B树中的结点不会A。

  这是上述LL旋转的镜像,只要把上文“左”和“右”、”“和”“互换位置即可得到解释。

  发现不平衡的结点A的左子树B的右子树C是插入结点后仍然平衡的子树。同样可以推断,C结点的左右子树在插入前是等高的;而且,B的左子树高度一定是C树在插入前的高度,A的右子树高度也是C树在插入前的高度,否则,LR的情况将不再成立。

  如果把C作为A和B的父节点,C的子树分别接到A和B上,那么新的树就重新平衡了。我们仍然要保持二叉搜索树的性质,所以BCA,B是C的左子树,A是C的右子树,而原先C的左子树仍然B,所以C的左子树要变成B的右子树,原先C的右子树仍然A,所以C的右子树要变成A的左子树。

http://kamexpress.net/feipinghengshu/1128.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有