我正在为 C# ( C5 ) 使用流行的 C5 库,并且我正在尝试弄清楚如何IPriorityQueue
正确实现。可以说我有一套A={5,4,1,2,3}
。我希望优先级是最高的整数值。我该如何实施?
有人可以举一个例子,说明我将集合中的元素A
一个一个添加到队列中吗?在哪里可以指定优先级属性?有点迷失了实施。
顺便说一句,最终目标是使用它来制作二进制堆。
我正在为 C# ( C5 ) 使用流行的 C5 库,并且我正在尝试弄清楚如何IPriorityQueue
正确实现。可以说我有一套A={5,4,1,2,3}
。我希望优先级是最高的整数值。我该如何实施?
有人可以举一个例子,说明我将集合中的元素A
一个一个添加到队列中吗?在哪里可以指定优先级属性?有点迷失了实施。
顺便说一句,最终目标是使用它来制作二进制堆。
我不熟悉那个 C5 库,但这里有一个易于使用、高性能的优先级队列实现:
ConcurrentPriorityQueue 源(如果您需要线程安全)
使用其中之一,您可以这样构建它:
IPriorityQueue<object> queue = new PriorityQueue<object>(5, true);
其中 5 是您要管理的优先级数,true/false 指定您是否希望优先级被视为优先级降序或升序,而 <object> 将是您的通用类型。这两个都支持完整的列表操作。还有一个项目网站。