]> git.unchartedbackwaters.co.uk Git - francis/ofc.git/commitdiff
Add priority queue wrapper.
authorFrancis Russell <francis@unchartedbackwaters.co.uk>
Sat, 7 Apr 2012 19:16:24 +0000 (20:16 +0100)
committerFrancis Russell <francis@unchartedbackwaters.co.uk>
Sat, 7 Apr 2012 19:16:24 +0000 (20:16 +0100)
src/ofc/util/DirectedGraph.scala

index 3cc7626cc45281d481d3df25b557b6042c6974f8..4c2e1afebf1c8cfd393a2986ebb9e8db9feefd68 100644 (file)
@@ -30,6 +30,19 @@ object DirectedGraph {
     }
   }
 
+  private class PriorityQueue[A](ordering: Ordering[A]) extends Queue[A] {
+    val queue = new scala.collection.mutable.PriorityQueue[A]()(ordering)
+
+    def nonEmpty = queue.nonEmpty
+    def pop() = queue.dequeue()
+    def clear() = queue.clear()
+
+    def +=(e: A) = {
+      queue += e
+      this
+    }
+  }
+
   def topoSort(graph: DirectedGraph) : Seq[DirectedGraph#Vertex] = {
     type Vertex = DirectedGraph#Vertex
     val degrees = scala.collection.mutable.Map[Vertex, Int]()