我需要以不同的顺序处理树,例如BFS和DFS。通过使用队列或堆栈,两者都很容易,但是,我缺少Java中的适当接口,允许执行类似

QueueOrStack<N> pending = ...
while (!pending.isEmpty()) {
    N node = pending.poll(); // <----- this is the problem
    pending.addAll(node.children());
    process(node);
}


没有真正的问题,我可以将ArrayList封装到实现Queue 1的内容中,但是我敢打赌,我忽略了Java Collection Framework中的内容。还是真的丢失了?

__

1或使用带有PriorityQueue的最新优先比较器,这可能是一个愚蠢的主意

最佳答案

有这样的结构。

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

关于java - 在Java中将堆栈用作队列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13185009/

10-12 05:52