KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Using Scala 2.9 to implement a kind of Dijkstra algorithm (pseudo code) val queue = new PriorityQueue queue.insert(...) while (!queue.isEmpty) { val u = queue.extractMin queue.foreach { v => if (condition(u, v)) queue.decreaseKey(v, newPriority) } } I'd like to change priority of an item in Scala's collection.mutable.PriorityQueue . Therefore tried to remove item change priority reinsert into queue. But I can't find a method to either update priority or remove a specific item (not necessarily head element) like java.util.PriorityQueue#remove(Object) as apposed in Removing an item from a priority queue . How this task can be done with scala.collection.mutable.PriorityQueue or do I have to use java.util.PriorityQueue instead? Does anyone know whether lack of such a method is by design and it would be recommended to rebuild the queue after changing priority of some items (maybe take a look at discussion about Priority queue with dynamic item priorities )?
Tags (comma-separated)
Save Edits
Cancel