STL set、map实现为什么要以红黑树为底层实现机制?

红黑树是一种特殊的平衡二叉搜索树,为什么set、map的实现要采用红黑树?

为什么不用heap?

set 、map都要求自动排序,heap也能实现自动排序啊,为什么不用heap?

我认为最重要的原因:STL中heap是基于vector实现的,而vector是连续线性空间,这不符合set的集合性质!

 

为什么不用二叉搜索树?

可能不平衡,造成搜索深度过大!

 

为什么不用平衡二叉搜索树(AVL树)?

这点有待全面理解红黑树的特点再给出结论。

posted @ 2013-05-25 15:43  helloweworld  阅读(3662)  评论(0编辑  收藏  举报