我需要以不同的顺序处理树,例如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/