AVL树

✍ dations ◷ 2025-11-08 16:15:31 #树结构

在计算机科学中,AVL树是最早被发明的自平衡二叉查找树。在AVL树中,任一节点对应的两棵子树的最大高度差为1,因此它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下的时间复杂度都是 O ( log n ) {\displaystyle O(\log {n})} 个节点被旋转,而每次AVL旋转耗费固定的时间,所以删除处理在整体上耗费O(log ) 时间。

可以像普通二叉查找树一样的进行,所以耗费O(log )时间,因为AVL树总是保持平衡的。不需要特殊的准备,树的结构不会由于查找而改变。(这是与伸展树搜索相对立的,它会因为搜索而变更树结构。)

假设平衡因子是左子树的高度减去右子树的高度所得到的值,又假设由于在二叉排序树上插入节点而失去平衡的最小子树根节点的指针为a(即a是离插入点最近,且平衡因子绝对值超过1的祖先节点),则失去平衡后进行的规律可归纳为下列四种情况:

在平衡的二叉排序树BBST (Balancing Binary Search Tree)上插入一个新的数据元素e的递归算法可描述如下:

AVL树的调平(Erlang的实现)

 1 balance(null) -> null; 2 balance({null, _, null}=Tree) -> Tree; 3 balance({Left, Value, Right}=Tree) -> 4 	Diff = count(Left)-count(Right), 5 	if (Diff < 2) and (Diff > -2)	->	{balance(Left), Value, balance(Right)}; 6 	   (Diff > 1)				->	balance(rotate_right(Tree)); 7 	   (Diff< -1)				->	balance(rotate_left(Tree)); 8 	   true					->	exit('This is impossible!') 9 	end.10 11 rotate_right({Left, Value, Right}) ->12 	merge_max(Left, {null, Value, Right}).13 14 rotate_left({Left, Value, Right}) ->15 	merge_min(Right, {Left, Value, null}).16 17 merge_min({null, Value, Right}, Tree2) ->18 	{Tree2, Value, Right};19 merge_min({Left, _, _}, Tree2) ->20 	merge_min(Left, Tree2).21 22 merge_max({Left , Value, null}, Tree2) ->23 	{Left, Value, Tree2};24 merge_max({_, _, Right}, Tree2) ->25 	merge_max(Right, Tree2).

AVL节点数计算

高度为h的AVL树,总节点数N最多 2 h 1 {\displaystyle 2^{h}-1} ; 最少节点数 N h {\displaystyle N_{h}} 如以斐波那契数列可以用数学归纳法证明:
N h {\displaystyle N_{h}} = F h + 2 {\displaystyle F_{h+2}} - 1 ( F h + 2 {\displaystyle F_{h+2}} 是斐波那契数列的第h+2项,根据斐波那契多项式得来)。
即:
N 0 {\displaystyle N_{0}} = 0 (表示AVL Tree高度为0的节点总数)
N 1 {\displaystyle N_{1}} = 1 (表示AVL Tree高度为1的节点总数)
N 2 {\displaystyle N_{2}} = 2 (表示AVL Tree高度为2的节点总数)
N h {\displaystyle N_{h}} = N h 1 {\displaystyle N_{h-1}} + N h 2 {\displaystyle N_{h-2}} + 1 (表示AVL Tree高度为h的节点总数)
换句话说,当节点数为N时,高度h最多为 l o g Φ ( 5 ( N + 1 ) ) 2 {\displaystyle log_{\Phi }({\sqrt {5}}*(N+1))-2}

相关

  • 枪虾鼓虾又名手枪虾,在饮食领域叫做嘎巴虾,颜色呈泥绿色,拥有一对一大一小的虾螯,身长约5厘米,但巨螯的长却达约2.5厘米。卡搭虾潜行于热带海洋的浅水区域,当卡搭虾猎食时会将它的巨螯
  • 裴李岗文化裴李岗文化是中国黄河中游地区的新石器时代文化,在仰韶文化之前,由于最早在河南新郑的裴李岗村发掘并认定而得名。该文化的分布范围,以新郑为中心,东至河南东部,西至河南西部,南至
  • 塔斯马尼亚州坐标:42°10′46.88″S 146°38′43.83″E / 42.1796889°S 146.6455083°E / -42.1796889; 146.6455083塔斯马尼亚州(英语:Tasmania,缩写为TAS),简称塔州,是澳大利亚唯一的岛州,原
  • 服毒自鸩,即服毒、仰药,是一种自杀的方法,指自杀者服用“鸩”(毒药的雅称)自杀。鸩是传说中的鸟类,以毒蛇为食,其羽毛紫黑色,有剧毒,故古人将其羽毛放在酒中,制为毒酒,是为“鸩酒”,后以“鸩
  • 赛诺非-安万特公司赛诺菲(法语:Sanofi)总部位于法国巴黎,是世界上第五大的制药企业。赛诺菲致力于医药产品的研究、开发、生产以及销售,产品主要覆盖七个领域:心血管疾病,血栓形成,肿瘤学,糖尿病,中枢神
  • 库思非库思非(英语:Carl Frederick Kupfer,德语:Karl Friedrich Kupfer,1852年6月8日-1925年11月20日),美以美会德裔年议会来华传教的代表性人物之一。1852年,他出生于现德国图林根州格赖茨
  • 仅孕酮避孕仅用孕酮的避孕法属于荷尔蒙避孕法(英语:hormonal contraception)中的一种,(另一种荷尔蒙避孕法是会用孕酮和雌激素)。仅用孕酮的避孕法有以下几种:Note: Though not listed here,
  • 好莱坞小子《好莱坞小子》(又名好莱坞小子的生与死)(韩语:헐리우드키드의 생애,英语:/)为1994年韩国剧情电影,于1994年7月30日上映,片长120分钟,由韩国著名导演郑智泳执导,安东圭、柳寅泽监制,电影
  • 龙凤双剑龙凤双剑,双兵器之一。出产于浙江龙泉,在两剑有脊的一面分别配有龙(为右手所使之剑)、凤(为左手所使之剑)图案。两剑柄首各配一根双剑单穗。双剑同入一鞘。
  • 欧洲化欧洲化(英语:Europeanisation, Europeanization)是指相关现象和典范的改变: