0%

AVL树

入门链接

五分钟告诉你什么是平衡二叉树 ?什么是二叉排序树?平衡因子的计算等等

平衡二叉排序树|AVL树-从入门到入土

二叉平衡树AVL平衡调整数据结构

平衡二叉树(AVL树) 调整 大一统 极简方法讲解

详解

什么是平衡二叉树(AVL)

java数据结构与算法之平衡二叉树(AVL树)的设计与实现

示例代码

图解:什么是AVL树?(删除总结篇)

Difference between the time complexity required to build Binary search tree and AVL tree?

平衡操作(分类和旋转)

avl_tree

avl_tree

avl_tree

avl_tree

标准写法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class AVLNode<T> {

// 左结点
public AVLNode<T> left;

// 右结点
public AVLNode<T> right;

// 存储的数据
public T data;

// 当前结点的高度
public int height;

// 一个没有叶节点的节点
public AVLNode(T data) {
this(null, null, data);
}

// 一个有叶节点的节点,且当前节点的高度为0
public AVLNode(AVLNode<T> left, AVLNode<T> right, T data) {
this(left, right, data, 0);
}

// 一个有叶节点的特定高度的节点
public AVLNode(AVLNode<T> left, AVLNode<T> right, T data, int height) {
this.left = left;
this.right = right;
this.data = data;
this.height = height;
}
}

AVL树高度和结点的关系(详见Tutorial 4 Problem 1.b.)

证明:一个有n个结点的AVL树的最高的高度h < 2log(n)