打印出堆栈/队列的所有元素[关闭]

Posted

技术标签:

【中文标题】打印出堆栈/队列的所有元素[关闭]【英文标题】:Print out all elements of a stack/queue [closed] 【发布时间】:2014-07-11 01:40:12 【问题描述】:

我正在尝试遍历堆栈和队列并打印出对象的值。在我的对象类中,我实现了一个 toString。我的堆栈和队列类使用链表。我首先尝试使用像数组这样的 for 循环来遍历它,显然不起作用。我知道如何登顶,但不是全部。

for (i = 0; i <= 9; i++) 
System.out.println(storageA[i].toString());

storageA 是我的堆栈,固定大小为 10。

【问题讨论】:

第 31 行有一个错误。 你能给我们看看代码吗? 请添加一些代码,这将有助于大家理解和解决您的问题。 嘿@user2963286,如果你得到了上面的` for (i = 0; i 【参考方案1】:

假设您要遍历包含 E 类型对象的完整列表:

for (E element : storageA) 
  System.out.println(element.toString());

如果你真的只想要元素 0-9(最好验证 storageA.size > 9,否则你会得到一个 IndexOutOfBoundsException):

for (i = 0; i <= 9; i++) 
   System.out.println(storageA.get(i).toString());

【讨论】:

我以前从未见过这样的 for 循环。如果有空白元素,它的工作原理是否相同,它会打印 null 或空行? “空白元素”是什么意思?如果元素是一个空引用,你当然会在 toString() 调用中得到一个空指针异常,否则你会得到你重写的 toString() 方法的返回值。 这是一个在许多语言中都有的概念:https://en.wikipedia.org/wiki/Foreach

以上是关于打印出堆栈/队列的所有元素[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

7-22 堆栈模拟队列 (25分)

如何使用堆栈和队列非递归地生成所有可能的n元素集子集?

栈队列算法题

用两个栈实现队列 (剑指offer第7题)

用两个栈实现队列

[算法学习]两个栈实现一个队列