2

ツリーを異なる順序で処理する必要があります。たとえば、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。これはおそらくばかげた考えです

4

1 に答える 1

5

このような構造があります。

それは呼び出されますArrayDeque-> http://docs.oracle.com/javase/6/docs/api/java/util/ArrayDeque.html

于 2012-11-01T20:35:33.810 に答える