AVL树

先说说几种特殊树及其应用场景:

  1. AVL树:最早的平衡二叉树之一。应用相对其他数据结构比较少。windows对进程地址空间的管理用到了AVL树。
  2. 红黑树:平衡二叉树,广泛用在C++的STL中。map和set都是用红黑树实现的。参见博客:http://blog.csdn.net/v_JULY_v/article/details/6105630
  3. B/B+树:用在磁盘文件组织、 数据索引和数据库索引
  4. Trie树:字典树,用在统计和排序大量字符串。

基本概念

AVL树本质上还是一棵二叉搜索树。
递归定义:

  1. 左右子树均为AVL树
  2. 左右子树的高度差的绝对值不超过1

提出AVL的背景:

当二叉查找树的节点序列为:1,2,3,4,5,6时,其树结构等同于一个链表。查找一个结点的时间复杂度是O(N),而AVL树的查找平均时间复杂度是O(logN)。

AVL树查找、插入和删除在平均和最坏情况下都是O(log n)。查找和删除可能需要通过一次或多次树旋转来重新平衡这个树。平衡调整过程主要包含四种旋转操作:LL,LR,RR,RL 。
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值