sclass BreadthFirstPathFinder { new LinkedList queue; MultiMap links; addAllReversed(queue, nodes); while (nempty(queue)) { A a = popFirst(queue); addAll(queue, getChildren(a)); } }