在Java中使用堆栈作为队列

时间:2012-11-01 20:31:19

标签: java stack queue

我需要以不同的顺序处理树,比方说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的最新第一个比较器,这可能是一个愚蠢的想法

1 个答案:

答案 0 :(得分:5)

有这样的结构。

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