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 封装ArrayList到实现Queue1的东西中,但是我敢打赌我忽略了 Java Collection Framework 中的一些东西。还是真的失踪了?

__

1或使用带有 a 的最新比较器PriorityQueue,这可能是一个愚蠢的想法

4

1 回答 1

5

有这样的结构。

它被称为ArrayDeque-> http://docs.oracle.com/javase/6/docs/api/java/util/ArrayDeque.html

于 2012-11-01T20:35:33.810 回答