使用BinarySearchTree实现PriorityQueue:C ++

时间:2017-06-29 20:51:38

标签: c++ data-structures binary-search-tree priority-queue

我必须创建一个项目:二进制搜索树中表示的优先级队列。这是我的算法类。我不确定你将如何使用二叉搜索树作为优先级队列。我在互联网上找到的所有例子都是关于堆的,“你永远不应该在bst中实现优先级队列,而只能在堆中”。有人可以向我解释我该怎么办?谢谢!

1 个答案:

答案 0 :(得分:0)

作为提示,优先级队列需要有效地支持插入元素,读取最小值(或最大优先级队列中的最大值),并删除最小值。 BST已经支持快速插入和删除。因此,如果您将优先级队列中的所有元素都存储在BST中,您将如何找到最小值?看看您是否可以使用BST按排序顺序存储其元素的事实,以找到一种非常快速的算法来查找最小值。