• 2022-05-28
    设将整数1,2,3,4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序夹入其中,请回答下述问题:(1)若入、出栈次序为Push(1),Pop(),Push(2),Push(3),Pop(),Pop(),Push(4),Pop(),则出栈的数字序列为何?(这里Push(i)表示i进栈,Pop()表示出栈)(2)能否得到出栈序列1423和1432?并说明为什么不能得到或者如何得到。(3)请分析1,2,3,4的24种排列中,哪些序列是可以通过相应的入出栈操作得到的。
  • (1)出栈序列为:1324(2)不能得到1423序列。因为要得到14的出栈序列,则应做Push(1),Pop(),Push(2),Push(3),Push(4),Pop()。这样,3在栈顶,2在栈底,所以不能得到23的出栈序列。能得到1432的出栈序列。具体操作为:Push(1),Pop(),Push(2),Push(3),Push(4),Pop(),Pop(),Pop()。(3)在1,2,3,4的24种排列中,可通过相应入出栈操作得到的序列是:1234,1243,1324,1342,1432,2134,2143,2314,2341,2431,3214,3241,3421,4321不能得到的序列是:1423,2413,3124,3142,3412,4123,4132,4213,4231,4312

    内容

    • 0

      对空栈S进行push和pop操作,入栈序列是a,b,c,d,e,经过push,push,pop,push,pop,push,push,pop操作后,得到的出栈序列是 A: b,a,c B: b,a,e C: b,c,a D: b,c,e

    • 1

      设有一个空栈,栈顶指针为1000H,现有输入序列为1、2、3、4、5,经过push,push,pop,push,pop,push,push后,输出序列是,栈顶指针为。

    • 2

      设有一个空栈,现有输入序列为1,2,3,4,5,经过操作序列push、pop、push、pop、push、push、pop后,现在已出栈的序列为(__)。

    • 3

      栈初始为空,依次经过以下操作: push(5); push(8); pop(); push(5); top(); push(1); push(3); pop(); pop(); push(2);此时从栈顶到栈底依次为: A: 2, 5, 5 B: 2, 3, 1 C: 5, 5, 2 D: 1, 3, 2

    • 4

      BE008 区分PUSH和POP指令时,PUSH是( )指令,POP是出栈指令。 A: 进栈 B: 出栈 C: 进出栈 D: 人栈