AVL 自平衡二叉搜索树 (Adelson-Velskii and Landis)[一]

AVL树是为解决二叉搜索树(BST)退化导致查询效率下降的问题,确保节点平衡,保证增删查的最差、最好、平均时间复杂度为O(logn)。文章介绍了四种旋转操作:右旋、左旋以及针对不平衡情况的调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

BST退化: 在添加一组递增元素时,BST会退化成一个链表,查询效率降低为O(n).

AVL是为了解决BST 退化而造成的查询效率降低的问题,最主要对BST进行了结构性的改变(进行旋转).

平衡: 节点的左右子树高度之差不能超过1.

AVL树的最差.最好.平均的增删插的时间复杂度为 O(log<2> N).

AVL的最差情况下,增删查需要旋转树的高度次 O(log<2> N).

四种旋转操作

为了维持节点平衡,引入四种节点的旋转的操作
1.左子树太高
在这里插入图片描述
进行右旋操作

child = node.left ;   // 将node的左子树作为child
    
node.left = child.right; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值