val maxHeap = scala.collection.mutable.PriorityQueue[Int] //Gives MaxHeap
使用Ordering将PriorityQueue转换为最小堆的最简洁有效方法是什么?
val maxHeap = scala.collection.mutable.PriorityQueue[Int] //Gives MaxHeap
使用Ordering将PriorityQueue转换为最小堆的最简洁有效方法是什么?
你需要定义自己的Ordering
:
scala> object MinOrder extends Ordering[Int] {
def compare(x:Int, y:Int) = y compare x
}
defined object MinOrder
然后在创建堆时使用它:
scala> val minHeap = scala.collection.mutable.PriorityQueue.empty(MinOrder)
minHeap: scala.collection.mutable.PriorityQueue[Int] = PriorityQueue()
scala> minHeap.ord
res1: Ordering[Int] = MinOrder$@158ac84e
chrisokasaki
)提出的建议{{link1:chrisokasaki/scads/scala/heapTraits.scala
}}。Heap
的“不太容易”的部分:val h1 = LeftistHeap.Min.empty[Int] // an empty min-heap of integers
val minHeap = PriorityQueue[Int]()(Ordering[Int].reverse)
- Sandeep