【发布时间】:2017-03-21 06:00:04
【问题描述】:
优先级队列对于每个条目都有一个优先级值和数据。
因此,当向队列中添加一个新元素时,如果它的优先级值高于集合中已有的元素,它就会冒泡到表面。
当调用 pop 时,我们会获取优先级最高的元素的数据。
在 Javascript 中这种优先级队列的有效实现是什么?
拥有一个名为 PriorityQueue 的新对象是否有意义,创建两个方法(push 和 pop)接受两个参数(数据、优先级)?作为一名编码员,这对我来说很有意义,但我不确定在底层使用哪种数据结构来允许操纵元素的顺序。或者我们可以将它们全部存储在一个数组中,然后每次遍历数组以获取具有最大优先级的元素吗?
有什么好的方法可以做到这一点?
【问题讨论】: