平衡二叉树是一种二叉搜索树。其可以保证在log2(n)的时间内找到节点,而普通的二叉搜索树在最坏情况下性能近似与链表,所用时间为log(n)。常用的平衡二叉树有AVL树和红黑树其算法的难点在于插入删除节点后树的旋转
平衡二叉树 ----> O(log2(n))
普通二叉搜索树 ----> O(n)
在二叉搜索树的插入和删除运算中,采用平衡树的优点是:使树的结构较好,从而提高查找运算的速度。缺点是:是插入和删除运算变得复杂化,从而降低了他们的运算速度。对二叉搜索树删除节点而引起的不平衡性进行的操作比插入节点的情况要复杂,在此就不再论述了。
操作系统的设计 也有用到哦
很多数据库的实现 是基于 更复杂的平衡二叉树
可以自己实现一个集合或者map,统计单词出现的次数
stl的map/set都在用
http://wenku.baidu.com/view/f3da5a7ea417866fb94a8e07.html
http://bbs.csdn.net/topics/390105284
普通二叉搜索树最坏情况是只有左边一个分支,如1-2-3-4-5(5在最上面,1在左下角),但是平衡二叉树可以调整。为1-2-3-4-5(3在最上面,1在左下角,5在右下角)。
平衡二叉树 ----> O(log2(n))
普通二叉搜索树 ----> O(n)
所以平衡二叉树的搜索性能比 二叉搜索树(二叉排序树)好。