一组元素如何用平衡二叉树表示

平衡二叉数又叫AVL树;如果有一组元素序列如:
(23,45,38,80,49,64,90)
我们要如何画出它的AVL呢 ?要先了解一下二叉排序树(查找二叉树)。建树时要遵循二叉排序树。
二叉排序树的特点是:左孩纸树小于跟,右孩子树大于根。具体操作如下:
在这里插入图片描述

但是在建树过程时,也要检查:每个结点的平衡度要满足在 :1,0,-1 之间
所谓每个结点平衡度是指:其左子树高度 - 其右子树高度,无则为零。
如:结点“45”为 1,“23”为 -2,“38”为 0.
很明显画下AVL树是“营养不良”的。十分的不平衡,为了能迷途知返那该怎么办呢?
进行**平衡化旋转 **:
对失去平衡AVL树,根据不同的环境,可以进行的操作有四种:
左单旋(LL),右单旋(RR)
先左后右双旋转,先右后左双旋转。
进行RR旋转(顺时针旋转),发现怎么旋转都没毛用(不遵循二叉排序树)!!!!
自己无脑写的元素序列跪着也要写完啊!!
先把结点都插完:
80,49,64,90;从根结点开始比较个个结点,看看是在左边还是在右边。最后完成了的AVL树是:

在这里插入图片描述

结点 “45”平衡度是 -2,“23”是 -4,以 “45”对其进行左单旋(LL)如下图:
在这里插入图片描述
做的很粗糙,不管了!!
因为自己瞎几把出的元素序列所以无法边建AVL树边矫正平衡了。
如有不足请大发慈悲的指出吧,给我个美丽的忠告,让我留下感动的泪水!!
其他三种旋转方法就不搞了!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值