python--树--AVL树

AVL树是一种平衡二叉查找树,确保左右子树高度差不大于1。插入可能导致不平衡,通过单旋(左旋、右旋)和双旋(先左后右、先右后左)来调整。插入过程中,先判断是否破坏平衡,然后选择旋转类型。插入实例展示了不同旋转情况。
摘要由CSDN通过智能技术生成

AVL树(平衡树)
1.本质:一棵二叉查找树
2.定义:带有平衡条件的查找树,是一种特殊的二叉查找树,又称平衡二叉树
3特点:是一颗空树或其左右子树高度差不大于1,并且两个子树都是一颗平衡二叉树
4.AVL树的基本操作:插入和删除。
在删除的时候可能会破坏树的平衡性,因此删除造成的操作,是不需要考虑的。AVL树的插入分为两大类—单旋转和双旋转,其中1)单旋转:分左旋转和右旋转;2)双旋转:分先局部右旋转再整体左旋转、先局部左旋转再整体右旋(即先左后右、先右后左)。也就是先局部再整体。
5.在实现上从以下三步入手:
1)判断插入操作是否破坏平衡,(判断要求:其左右子树高度差不大于1)
2)选择操作是单旋转还是双旋转
①对该结点的左儿子的左子树进行一次插入。(右)
②对该结点的左儿子的右子树进行一次插入。(先左后右)
③对该结点的右儿子的左子树进行一次插入。(先右后左)
④对该结点的右儿子的右子树进行一次插入。(左)
其中①、④选择单旋转②、③选择双旋转
3)旋转
以下是图解析
在这里插入图片描述
我们按顺序将一 组数据1,2,3,4,5,6分别插入到一颗空二叉查找树和AVL树中,插入的结果如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值