http://bbs.chinaunix.net/thread-3760493-1-1.html
一般的2叉树,加入平衡算法,也能达到动态平衡,那么红黑树到底有什么优势呢? 我看红黑树的增加删除,旋转,似乎也没有什么特别之处啊。
什么样的问题必须用红黑树来解决?
红黑树与AVL的比较: AVL是严格平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红黑树要多; 红黑是用非严格的平衡来换取增删节点时候旋转次数的降低; 所以简单说,如果你的应用中,搜索的次数远远大于插入和删除,那么选择AVL,如果搜索,插入删除次数几乎差不多,应该选择RB。 |
有时仅为了排序(建立-遍历-删除),不查找或查找次数很少,rb合算一些。
查找多的话用 AVL ,
添加删除多的话用 RB。