AVL树(附Java 代码、详细注释、前端打印功能)

AVL树(附Java 代码、详细注释、前端打印功能)

树、深度、高度

参考百度百科的对树和平衡树的定义:

平衡树

平衡因子

左子树高度减去右子树高度的差值称为该树的平衡因子

左旋

AVL树(附Java 代码、详细注释、前端打印功能)
记忆口诀:右边的儿子变爸爸,右子的左子变右子

右旋

AVL树(附Java 代码、详细注释、前端打印功能)
记忆口诀:左边的儿子变爸爸,左子的右子变左子

增加、删除节点

增加删除节点会导致树节点的不平衡,需要重新计算高度和平衡因子并根据平衡因子进行旋转来重新平衡,以下是Java代码完整实现,并且还有打印器代码。

代码

前方高能,代码里包含大量注释内容、图型以及推导过程,觉得还OK的兄弟麻烦伸出你发财手点个赞啊!

Gitee : tree-printer
其中代码 tree-printer-web 是一个前端页面,可以方便测试增删查,大概就长下面这个样子
AVL树(附Java 代码、详细注释、前端打印功能)

Talk is cheap, show me your code.