第 1 页 共 6 页 平衡二叉树(AVL 树) 这个恐怕是整个《数据结构》教科书里面最难的和最“没用”的数据结构了(现在的教科书还有部分算法内容)
说它没用,恰恰是因为它太有用——有着和普通的二叉搜索树完全一样的接口界面,绝大多数情况下比普通的二叉搜索树效率高(很多)
因此,通常情况下,人们都是一劳永逸的——写完后就重用,而不会再写了
所以说,你虽然学完了平衡二叉树,但很可能你永远也不会亲自写一个
你现在随便在身边拉个人,让他来写一个,能顺利的写出来的恐怕不多,玩笑之词,且勿当真
在开始写之前,我很担心,能不能把这部分写清楚,毕竟书上满天的switch… case,并且还只是一半——有左旋没有右旋,有插入没有删除
后来,我变得有信心了——因为书上都 没有说清 楚 ,都 在那 里说梦 话
我 没有找到 AVL 树的发明 者 的原 著 (G
Adelson-Velskii and Y
Landis
An algorithm for the organiz ation of information
Soviet Math
, 3:1259--1262, 1962
)也不知道我下面所写的是不是体现了发明者的本意,但至少,我认为现在的教科书歪曲了发明者的本意
一、基本概念 ➢ 平衡 下 面的引 文 出 自 Algorithms and Data Stru ctu res (Niklau s Wirth, Prentice-Hall, Englewood Cliffs, NJ, 1986 ISBN: 0-13-022005-1 pp
215 – 226) One such definition of balance has been postulated by Adelson-Velskii and Landis [4-1]
The bala