如何在 C5 库中使用 IPriorityQueue
Posted
技术标签:
【中文标题】如何在 C5 库中使用 IPriorityQueue【英文标题】:How to use IPriorityQueue in the C5 Library 【发布时间】:2017-09-29 02:31:45 【问题描述】:我正在为 C# (C5) 使用流行的 C5 库,我正在尝试弄清楚如何正确实现 IPriorityQueue
。可以说我有一套A=5,4,1,2,3
。我希望优先级是最高的整数值。我该如何实现?
有人可以举例说明我在哪里将集合A
中的元素一个一个添加到队列中吗?在哪里可以指定优先级属性?有点迷失了实施。
顺便说一句,最终目标是用它来做一个二叉堆。
【问题讨论】:
我建议查看他们的IntervalHeap 实现,以获取实现IProirityQueue
的示例。您可以使用我的simple heap of integers 作为堆实现的示例,您应该能够修改它以实现他们的IPriorityQueue
。几年前,我写了很多关于二进制(和 d-ary)堆的文章。整个系列见blog.mischel.com/2013/12/18/posting-the-heap-code。
那么您使用 IPriorityQueue 而不是列表吗?该语法是什么样的?公共 Mylist我不熟悉那个 C5 库,但是这里有一个易于使用的高性能优先级队列实现:
PriorityQueue source
ConcurrentPriorityQueue source(如果你需要线程安全)
使用其中一个,您可以这样构建它:
IPriorityQueue<object> queue = new PriorityQueue<object>(5, true);
其中 5 是您要管理的优先级数,true/false 指定您是否希望优先级被视为降序或升序,而
【讨论】:
以上是关于如何在 C5 库中使用 IPriorityQueue的主要内容,如果未能解决你的问题,请参考以下文章
阿里云热门云服务器机型N4,S6,C5,C6都有哪些特点,该如何选择?