ツリーを異なる順序で処理する必要があります。たとえば、BFS と DFS としましょう。どちらもキューまたはスタックを使用することで簡単ですが、次のようなことを可能にする Java の適切なインターフェイスがありません。
QueueOrStack<N> pending = ...
while (!pending.isEmpty()) {
N node = pending.poll(); // <----- this is the problem
pending.addAll(node.children());
process(node);
}
本当の問題はありません。 an を1ArrayList
を実装するものにカプセル化できますが、Java Collection Framework の何かを見落としているに違いありません。それとも本当に欠けているのでしょうか?Queue
__
1または newest-first コンパレータを で使用しますPriorityQueue
。これはおそらくばかげた考えです