Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将整数推入并弹出堆栈,不可能有什么结果_Java_Algorithm_Assembly_Data Structures_Stack - Fatal编程技术网

Java 将整数推入并弹出堆栈,不可能有什么结果

Java 将整数推入并弹出堆栈,不可能有什么结果,java,algorithm,assembly,data-structures,stack,Java,Algorithm,Assembly,Data Structures,Stack,我正在尝试学习一门在线算法课程,但我似乎无法理解这是如何工作的。(这不是家庭作业,只是免费在线课程中的一个问题) 有人能解释一下答案是如何找到的吗?练习结束时给出了答案,但我不明白它是如何工作的。提前感谢!:) 假设执行(堆栈)推送和弹出操作的混合序列。按顺序推动整数0到9;pops打印出返回值。以下哪一个顺序不能发生? (a) 4321098765 (b) 4687532901 (c) 2567489310 (d) 4321056789 (e) 1234569870 (f) 046538172

我正在尝试学习一门在线算法课程,但我似乎无法理解这是如何工作的。(这不是家庭作业,只是免费在线课程中的一个问题)

有人能解释一下答案是如何找到的吗?练习结束时给出了答案,但我不明白它是如何工作的。提前感谢!:)

假设执行(堆栈)推送和弹出操作的混合序列。按顺序推动整数0到9;pops打印出返回值。以下哪一个顺序不能发生? (a) 4321098765

(b) 4687532901

(c) 2567489310

(d) 4321056789

(e) 1234569870

(f) 0465381729

(g) 1437986302

(h) 2143658790


正确答案:(b)、(f)和(g)。

如果数字按顺序排列,即使POP随机出现,也有某些事情永远不会发生。考虑(b):

按0、1、2、3、4、弹出4、5、6、弹出6、7、8、弹出8、弹出7、弹出5、弹出3、弹出2、弹出9、弹出9。。。。您无法弹出0,因为该0挡住了路


其他不正确的答案也是如此

我投票结束这个问题,因为它不是一个编程问题。在任何时候,你只能做两件事情中的一件,其中一件打印一些东西,所以很明显,在任何给定的步骤中,你应该做什么才能得到想要的输出。我不同意。这是一个编程理论问题,因为它要求个人理解一个重要的数据结构;堆栈或后进先出。@DavidHoelzer一个直接寻求理解堆栈如何工作的问题可能很好,但这个问题更多的是关于简单逻辑,而不是关于堆栈如何工作(即使该逻辑需要理解堆栈)。谢谢。为了理解这一点,我需要做的只是用一支笔和一张纸把过程写下来。现在很有意义,一旦你理解了它就很容易了。再次感谢:)