Questions tagged «priority-queue»


14
.Net中的优先级队列
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 3年前关闭。 改善这个问题 我正在寻找优先级队列或堆数据结构的.NET实现 优先级队列是一种数据结构,比简单的排序更具灵活性,因为它们允许新元素以任意间隔进入系统。将新作业插入优先级队列比在每次到达时重新排序所有内容更具成本效益。 基本优先级队列支持三个主要操作: 插入(Q,x)。给定带有键k的项目x,将其插入优先级队列Q。 查找最小值(Q)。返回一个指针,该指针的项的值小于优先级队列Q中的任何其他项。 最小删除(Q)。从密钥最小的优先级队列Q中删除该项目 除非我在错误的地方寻找,否则框架中没有一个。有谁知道一个好人,还是我应该自己做一个?



3
为什么Dijkstra的算法使用减少键?
Dijkstra的算法教给我如下 while pqueue is not empty: distance, node = pqueue.delete_min() if node has been visited: continue else: mark node as visited if node == target: break for each neighbor of node: pqueue.insert(distance + distance_to_neighbor, neighbor) 但是我一直在阅读有关算法的文章,我看到很多版本都使用reduce-key而不是insert。 为什么会这样?两种方法有何区别?

8
在C ++中使用自定义比较器声明priority_queue
我试图声明一个priority_queue of nodes,bool Compare(Node a, Node b)用作比较器函数(在节点类外部)。 我目前拥有的是: priority_queue<Node, vector<Node>, Compare> openSet; 由于某种原因,我越来越 Error: "Compare" is not a type name 将声明更改为 priority_queue <Node, vector<Node>, bool Compare> 给我 Error: expected a '>' 我也尝试过: priority_queue<Node, vector<Node>, Compare()> openSet; priority_queue<Node, vector<Node>, bool Compare()> openSet; priority_queue<Node, vector<Node>, Compare<Node, Node>> openSet; 我应该如何正确声明我的身份priority_queue?

3
Microsoft内部的PriorityQueue <T>中的错误?
在PresentationCore.dll中的.NET Framework中,有一个通用PriorityQueue&lt;T&gt;类,其代码可以在此处找到。 我写了一个简短的程序来测试排序,结果并不理想: using System; using System.Collections.Generic; using System.Diagnostics; using MS.Internal; namespace ConsoleTest { public static class ConsoleTest { public static void Main() { PriorityQueue&lt;int&gt; values = new PriorityQueue&lt;int&gt;(6, Comparer&lt;int&gt;.Default); Random random = new Random(88); for (int i = 0; i &lt; 6; i++) values.Push(random.Next(0, 10000000)); int lastValue = int.MinValue; …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.