Java 堆栈和队列检查跟踪

Java 堆栈和队列检查跟踪,java,Java,我正在看一份我拿到的试卷样本,以便为真正的考试做准备。我很确定我回答的问题是错的,如果你们能告诉我哪里出了问题,那就太酷了。但是试着描述一下,这样我就可以操纵不同的值来真正理解 抱歉,不确定如何转换它,所以它显示为一个图像在这里如果有人可以为我这样做,我将不胜感激 无论如何,第一个值是“12” 我将经历我的尝试: 第一个.push行将其添加到堆栈中,并将其从字符串转换为int 因为它不是空的,所以我们对名为first的堆栈执行try 这就是我可能出错的地方-value=first.pop();

我正在看一份我拿到的试卷样本,以便为真正的考试做准备。我很确定我回答的问题是错的,如果你们能告诉我哪里出了问题,那就太酷了。但是试着描述一下,这样我就可以操纵不同的值来真正理解

抱歉,不确定如何转换它,所以它显示为一个图像在这里如果有人可以为我这样做,我将不胜感激

无论如何,第一个值是“12”

我将经历我的尝试:

  • 第一个.push行将其添加到堆栈中,并将其从字符串转换为int
  • 因为它不是空的,所以我们对名为first的堆栈执行try
  • 这就是我可能出错的地方-value=first.pop(); 因为堆栈是后进先出的,所以我假设值的结果是2 因为“12”2排在最后,所以它是最新的
  • 2%2==0,因此我们现在向列表中添加值,该值为2,但因为它是第二个。offer(value/2); 这将使其为0,因此它没有值?使其无效
  • 我们跳过了捕获,因为一切都很顺利
  • 看这里,我不确定,因为我猜第二个是空的,因为我们添加了0 我很困惑,我肯定我在什么地方出错了。如果你们能帮我完成,我会非常感激,因为它几乎肯定会出现在我的考试中。

    我认为#4可能是错的,2/2应该是1,而不是0

    另外,不要混淆0和null。0是一个非常好的值,就像1或2一样。 此外,基元int不能为null。它总是包含一个整数。奉献 将0添加到队列应该是完全正常的

    根据评论进行编辑:

    “2 0 4”包含许多偶数元素。要回答这个问题,你必须 了解一下queue类,特别是poll方法。 您应该注意,轮询是在循环中完成的,一直持续到队列结束 是空的。如果poll方法从队列中删除元素(这似乎很可能) 然后它应该打印出队列中的所有元素,对吗?所以你的答案应该是
    可能包含多个元素。

    value/2即2/2=1对吗?!你误会了。代码(值%2==0)正在检查偶数并忽略奇数,正如您所说的。但是,(value/2)会给你1,而不是0。[即2/2=1]。另外,即使计算结果是0,也不等于零。哇,真不敢相信我犯了这个错误。有人能确认答案是1吗?当然是2/2=1。这是基础数学。只有除以0,除法的结果才是0。是的,我知道我犯了一个数学错误。。。但我还是想知道我是否正确地完成了这个计划?嗯,我想你的基本想法是对的。如果您想增加您的理解,我建议您多考虑一下为什么将0添加到队列和将1添加到队列一样有意义。这与本例无关,但仍然很重要。谢谢。对于“2 0 4”,我得到了答案2是正确的吗?