堆栈和队列考试贯彻执行

时间:2014-04-10 18:38:09

标签: java

我正在阅读一份样本试卷,以便为真实的考试做准备。我非常确定无论如何我都会回答错误的问题,如果你们能指出我哪里出错了那真的很酷。但是尝试并且具有描述性,以便我可以操纵不同的值来实际理解!

很抱歉link不确定如何转换它以便在此处显示为图像如果有人可以为我做这件事我很感激。

无论如何,第一个值是" 1 2"

我将完成我的尝试:

  1. first.push行将它添加到Stack中,并将其从String转换为int。
  2. 由于它不是空的,我们按照名为第一个的堆栈的尝试
  3. 这是我认为我可能出错的地方 - value = first.pop(); 由于堆栈是先进先出,我假设值的结果为2 因为" 1 2" 2排在最后,所以它是最近的......
  4. 2%2 == 0所以我们现在为列表添加值2,但是因为它是second.offer(value / 2); 这会使它为0,因此它没有价值?把它变成空?
  5. 我们跳过了捕获,因为一切都顺利进行......
  6. 看到这里我不确定,因为我猜第二个是空的,因为我们加了0?
  7. 我很困惑,我确定我在某个地方出了问题。如果你们能帮助我完成它,我会非常感激,因为它几乎肯定会出现在我的考试中。

1 个答案:

答案 0 :(得分:1)

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

另外,不要混淆0和null。 0是一个非常好的值,就像1或2。 原始的int也不会变为null。它总是包含一个整数。供 0到队列应该完全没问题。

编辑以回应评论:

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