相关疑难解决方法(0)

如何在Scala中使用优先级队列?

我正在尝试在Scala(版本2.10)中实现A*搜索,但我遇到了一堵砖墙 - 我无法弄清楚如何使用Scala的优先级队列.这似乎是一个简单的任务,但在Google上搜索没有发现任何东西(除了在2.8版本中停止工作的单个代码示例)

我有一组由(Int, Int)s 表示的正方形,我需要用Ints 表示的优先级插入它们.在Python中它很简单,因为你只有一个键值对的列表,并使用heapq函数对它进行排序.但看起来Scala的元组甚至不具有可比性.

那你怎么做的?鉴于它应该是多么简单,我对完全缺乏在线信息感到惊讶.

scala tuples priority-queue scala-collections

13
推荐指数
1
解决办法
1万
查看次数

Scala命令优先级队列始终具有最低编号作为头部,升序

我想获得一个代码示例,它可以完成优先级队列中项目的升序排序.

我想存储Tuple2(Int, String)在优先级队列中,以便按元组的第一个元素按升序排序.如果我的优先级队列被调用pq,我打电话,pq.head我想得到数量最少的元组,同样的调用pq.dequeue.

scala> val pq = scala.collection.mutable.PriorityQueue[(Int, String)]()
pq: scala.collection.mutable.PriorityQueue[(Int, String)] = PriorityQueue()

scala> pq += Tuple2(8, "eight")
res60: pq.type = PriorityQueue((8,eight))

scala> pq += Tuple2(4, "four")
res61: pq.type = PriorityQueue((8,eight), (4,four))

scala> pq += Tuple2(7, "seven")
res62: pq.type = PriorityQueue((8,eight), (4,four), (7,seven))
Run Code Online (Sandbox Code Playgroud)

如何在插入上面的第一个元素应用升序?

谢谢

sorting heap scala priority-queue

5
推荐指数
3
解决办法
5960
查看次数