AVL树的定义:带有平衡条件的二叉查找树,其左右子树的高度差小于等于1。通过对树的旋转保持平衡。
本文是通过保存高度值实现删除和插入
准备工作
public class AvlTree<T extends Comparable<? super T>> {
//保存根节点
private AvlNode<T> root;
//定义节点
private static class AvlNode<T>{
AvlNode<T> left;//左儿子
AvlNode<T> right;//右儿子
T data;//数据域
int height;//高度
public AvlNode(T data){
this(data,null,null);
}
public AvlNode(T d,AvlNode<T> l,AvlNode<T> r){
left=l;
right=r;
data=d;
height=0;
}
}
public AvlTree(){
clear();
}
private int height(AvlNode<T> t){
return t==null?-1:t.height;
}
public boolean isEmpty(){
return root==