堆和BST的区别是什么?什么时候使用堆,什么时候使用BST?如果你想以排序的方式获取元素,BST比堆更好吗?

为什么std::map被实现为红黑树?目前有几种平衡二叉搜索树(BSTs)。选择红黑树的设计权衡是什么?

有人能举例说明二叉树和二叉搜索树的区别吗?