// Copyright 2003, Trustees of Indiana University // Please see the license in the file ../LICENSE import java.util.ArrayList; public class mutable_queue< Vertex, Compare extends StrictWeakOrdering> implements MutableQueue { private ArrayList vertices_; private Compare compare_; public void push(Vertex v) { vertices_.add(v); } public Vertex pop() { if (empty()) return null; Vertex best = vertices_.get(0); int best_idx = 0; for (int i = 1; i < vertices_.size(); ++i) if (compare_.less(vertices_.get(i), best)) { best = vertices_.get(i); best_idx = i; } vertices_.remove(best_idx); return best; } public boolean empty() { return vertices_.isEmpty(); } public void update(Vertex v) {} public mutable_queue(Compare compare) { compare_ = compare; vertices_ = new ArrayList(); } }