曾经上数据结构的时候上机作业留过一道AVL树的题目,班上有个搞ACM的大佬花了一个下午的时间写完了,当时我听到居然要写两百多行代码简直佩服得五体投地并且放弃了自己写的打算,对AVL树的理解也就停留在考试会手动画插入节点时的旋转这种层面(还不会删除)。后来编码能力提高之后,一直想找时间做一下看看跟大佬的差距有多大(一拖就是几年到现在已经毕业了),
结果现在写好一个非递归版本的BST和AVL,再加上测试用例,一看时间统计,好家伙15h,我自杀算了:(
不过感觉可以把实现过程中一些心得和理解用两三篇博文的篇幅略微记录一下,算是不白费这番折腾吧。
一 AVL原理 BST 两种删除 二 非递归 父指针 三 指针