【数据结构】中平衡搜索树的旋转方式解析

来源:互联网 发布:php获取url参数 编辑:程序博客网 时间:2024/05/17 07:00

数据结构中有一种平衡搜索树,在平衡树中,为了保证任意节点的平衡因子的绝对值不超过2,成为平衡树,就需要对树进行降高度的操作

在降高度的操作中,有几种旋转方式,左单旋,右单旋,左右单旋以及右左单旋。

接下来,我们就来分析一下这几种旋转:

左单旋:

在左单旋中:旋转的时候,使subRL作为parent的右节点,而parent自己作为subR的左节点,让subR作为父节点。

右单旋:

在右单旋中:旋转的时候,使subLR作为parent的左节点,而parent自己作为subL的右节点,让subL作为父节点。

左右单旋:


在左右单旋中:

        首先,是左单旋:让节点b作为subL的右节点,而subL作为subLR的左节点,然后subLR自己作为parent的 左节点;

        然后,是右单旋:让parent作为subLR的右节点,subLR自己作为父节点。

右左单旋:



在右左单旋中:

       首先,是右单旋:让b节点作为subR的左节点,subR作为subRL的右节点,然后subRL自己作为parent的右节点;

       然后,是左单旋:让parent作为subRL的左节点,subRL自己作为父节点。

要注意的是,在旋转的时候,平衡因子也一定要更新,而平衡因子的修改与插入节点的位置有很大的关系!



0 0
原创粉丝点击