哈希表与树笔记(五)

/**

     * 右平衡操作,即结点t的不平衡是因为右子树过深

     *

     * 1、如果新的结点插入到t的右孩子的右子树中,则直接进行左旋操作即可

     *       

     *           t                                               tr

     *         /   \                                            /     \

     *        l     tr                左旋操作           t       rr

     *            /   \            ----------->            / \     /    \

     *           rl    rr                                     l   rl rrl    rrr

     *                /   \

     *            rrl     rrr

     

     * 2、如果新的结点插入到t的右孩子的左子树中,则需要进行分情况讨论

     *   情况a:当t的右孩子的左子树根节点的balance = LEFT_HIGH

     *

     *           t                             t                              trl

     *          /  \                           /  \                           /   \

     *         2   tr       tr右旋        2  trl     t左旋           t    tr

     *             /  \      ------->        /  \       ------->      /  \     \

     *         trl      5                    6   tr                   2   6       5

     *           /                                   \

     *          6                                     5

     * 情况b:当t的右孩子的左子树根节点的balance = RIGHT_HIGH

     *

     *           t                              t                                trl

     *          /  \                           /  \                             /   \

     *         2   tr       tr右旋        2  trl         t左旋         t    tr

     *             /  \      ------->              \       ------->     /     /  \

     *            trl   5                             tr                  2      6     5 

     *             \                                  /  \

     *               6                              6    5

     

     * 情况C:当t的右孩子的左子树根节点的balance = EQUAL_HIGH

     *           t                            t                             trl

     *          /  \                         /  \                           /   \

     *         2   tr       右旋        2  trl         左旋        t    tr

     *             /  \      ------->        /  \       ------->      / \    / \

     *          trl     5                     6   tr                   2   6  7   5

     *           / \                                /  \

     *          6   7                            7    5

     * */

 

 

 

 

/**

     * 左平衡操作,即结点t的不平衡是因为左子树过深

     *

     * 1、如果新的结点插入到t的左孩子的左子树中,则直接进行右旋操作即可

     *                t                                             tl

     *              /  \           右旋操作             /         \

     *             tl   tr         ------------->         tll         t

     *            /  \                                      /  \        /   \

     *           tll  tlr                                lcll  lclr    tlr   tr

     *           /  \

     *         lcll   lclr

     *        

     * 2、如果新的结点插入到t的左孩子的右子树中,则需要进行分情况讨论

     *

     *   情况a:当t的左孩子的右子树根节点的balance = RIGHT_HIGH

     *           t                            t                               tlr

     *          /  \                         /  \                             /  \

     *         tl    6          左旋   tlr    6       右旋         tl    t

     *       /  \          ------->     /  \        -------->         /    /  \

     *      3  tlr                     tl    5                         3    5    6

     *            \                   /

     *             5                3

     *   情况b:当t的左孩子的右子树根节点的balance = LEFT_HIGH

     *

     *           t                         t                                tlr

     *          /  \                       /  \                              /  \

     *       tl    6          左旋     tlr    6          右旋        tl    t

     *        /  \         ------->     /          -------->            / \    \

     *       3  tlr                   tl                                  3   5    6

     *          /                     / \

     *         5                     3   5

     *

     *   情况c:当t的左孩子的右子树根节点的balance = EQUAL_HIGH

     *

     *           t                         t                                    tlr

     *          /  \                       /  \                                /  \

    *        tl    7         左旋       tlr    7          右旋         tl   t

     *        /  \         ------->      / \         -------->           / \   / \

     *       3  tlr                     tl   6                            3   5  6  7

     *           / \                   / \

     *          5   6                3    5

     * */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值