前情提要
之前只写了一些AVL树核心算法,这里给出一个AVL树的完整实现。
AVL树是平衡查找二叉树,不仅能避免二叉搜索树出现斜树的状况,更是能保持比较标准的O(log2N),但AVL树可能需要很多次的各种调整:
左儿子单旋转
左儿子双旋转
右儿子单旋转
右儿子双旋转
最终使得AVL树维持平衡,保持较高查找效率。
调整在插入删除每一次的不平衡后进行,可能简单也可能复杂,但基本的四种“动作”是固定的。
AVL树作为数据结构,说简单也简单,说复杂也复杂。对初学者来说,一定要掌握的是检测和调整AVL树