如何在C5库中使用IPriorityQueue

时间:2017-05-01 17:03:44

标签: c# heap priority-queue binary-heap c5

我正在使用流行的C5库来进行C#(C5),而我正试图弄清楚如何正确实现IPriorityQueue。假设我有A={5,4,1,2,3}集。我希望优先级是最高的整数值。我该如何实现呢?

有人可以举例说明我在集A中逐个添加元素到队列的位置吗?在哪里可以指定优先级属性?有点失去了实施。

顺便说一句,最终的目标是使用它来制作二进制堆。

1 个答案:

答案 0 :(得分:0)

我不熟悉那个C5库,但这里有一个易于使用的高性能优先级队列实现:

PriorityQueue source

ConcurrentPriorityQueue source(如果您需要线程安全)

使用其中之一,您可以这样构建它:

IPriorityQueue<object> queue = new PriorityQueue<object>(5, true);

其中5是您要管理的优先级数,true / false指定是否要将优先级视为优先级降序或升序,&lt; object&gt;将是你的通用类型。这两个都支持完整列表操作。还有project website