红黑树是一种特殊的平衡二叉搜索树,为什么set、map的实现要采用红黑树?
为什么不用heap?
set 、map都要求自动排序,heap也能实现自动排序啊,为什么不用heap?
我认为最重要的原因:STL中heap是基于vector实现的,而vector是连续线性空间,这不符合set的集合性质!
为什么不用二叉搜索树?
可能不平衡,造成搜索深度过大!
为什么不用平衡二叉搜索树(AVL树)?
这点有待全面理解红黑树的特点再给出结论。
为什么不用heap?
set 、map都要求自动排序,heap也能实现自动排序啊,为什么不用heap?
我认为最重要的原因:STL中heap是基于vector实现的,而vector是连续线性空间,这不符合set的集合性质!
为什么不用二叉搜索树?
可能不平衡,造成搜索深度过大!
为什么不用平衡二叉搜索树(AVL树)?
这点有待全面理解红黑树的特点再给出结论。
转载于:https://www.cnblogs.com/helloweworld/archive/2013/05/25/3098901.html