import scala.
collection.
mutable.
PriorityQueue
def compare
(other
: Node
) = other.
distance.
compare(distance
); }
var x
= PriorityQueue
[Node
](); x +
= Node
(1.0/
0,
"cool",
true); x +
= Node
(3.0,
"cook",
false); x +
= Node
(7.5,
"coos",
true); y.distance = 4.0;
x += y;
x foreach println;
while (x.
nonEmpty) println
(x dequeue
); }
aW1wb3J0IHNjYWxhLmNvbGxlY3Rpb24ubXV0YWJsZS5Qcmlvcml0eVF1ZXVlCgpjYXNlIGNsYXNzIE5vZGUodmFyIGRpc3RhbmNlOiBEb3VibGUsIHZhciBwYXRoOiBTdHJpbmcsIHZhciB2aXNpdGVkOiBCb29sZWFuKSAKCWV4dGVuZHMgT3JkZXJlZFtOb2RlXXsKCWRlZiBjb21wYXJlKG90aGVyOiBOb2RlKSA9IG90aGVyLmRpc3RhbmNlLmNvbXBhcmUoZGlzdGFuY2UpOwp9CgpvYmplY3QgTWFpbiBleHRlbmRzIEFwcCB7Cgl2YXIgeCA9IFByaW9yaXR5UXVldWVbTm9kZV0oKTsKCXggKz0gTm9kZSgxLjAvMCwgImNvb2wiLCB0cnVlKTsKCXggKz0gTm9kZSgzLjAsICJjb29rIiwgZmFsc2UpOwoJeCArPSBOb2RlKDcuNSwgImNvb3MiLCB0cnVlKTsKCXZhciB5ID0geCBkZXF1ZXVlOwoJeS5kaXN0YW5jZSA9IDQuMDsKCXggKz0geTsKCXggZm9yZWFjaCBwcmludGxuOwoJd2hpbGUgKHgubm9uRW1wdHkpIHByaW50bG4oeCBkZXF1ZXVlKTsKfQ==
Node(4.0,cook,false)
Node(Infinity,cool,true)
Node(7.5,coos,true)
Node(4.0,cook,false)
Node(7.5,coos,true)
Node(Infinity,cool,true)