【发布时间】:2011-06-20 16:45:01
【问题描述】:
我最近刚刚启动了一个项目,其中包含一些已经编写的代码。我决定研究他的实现,发现他实现了一个带有单链表的优先级队列。
我对 SLL 的理解是,由于您可能必须遍历整个列表,因此实现它的效率很低,这就是首选堆的原因。但是,也许我错过了它背后的某种推理,并且想知道是否有人曾选择 SLL 而不是堆作为优先级队列?
【问题讨论】:
-
优先级队列必须支持插入、删除和更改元素的优先级。一个好的实现将在 O(log n) 时间(简单堆)或更短时间(二项式堆、斐波那契堆)内完成任何这些。 “他的”实现是否有这样的运行时间?回答这个问题,你就会回答你自己的问题。
标签: c priority-queue singly-linked-list binomial-heap