我想读取堆栈的所有元素而不会弹出它们。我在网上查了一下,发现有一个'peek'操作,但它只返回堆栈的第一个元素。如何读取堆栈的其他元素?请用Java推荐它的代码。
提前致谢:)
答案 0 :(得分:2)
只是重复原来的答案,看起来你需要一个不同的数据结构......如果你详细说明为什么你需要在没有标准操作的情况下看到堆栈的所有元素,那么也许可以提出建议。你可能已经想到了它,但是如果你弹出所有元素并将它们推到另一个堆栈上,然后再回到原始堆栈,你可以看到元素,但我不知道为什么你我想这样做。
答案 1 :(得分:1)
如果你在谈论the abstract data type,那取决于实施。堆栈通常实现为数组或链表 - 其中任何一个都易于遍历。使用仅堆栈接口(只有init,push,top,pop和isempty方法,根据维基百科),这根本不可能。
如果你在谈论the Stack
class,那就像templatetypedef指出的那样,实现Vector
,其a get
by index(以及size
方法)和{ {3}},允许你迭代它。