设将整数1,2,3,4依次进栈,进栈的同时可以出栈,请回答下述问题:
(1)若人、出栈次序为Push(1),Pop(),Push(2),Push(3),Pop(),Pop(),Push(4),Pop(),则出栈的数字序列是什么?(这里Push(i)表示i进栈,Pop()表示出栈)
(2)能否得到出栈序列1423和14327并说明为什么?
(3)请分析1,2,3,4的24种排列中,哪些序列是可以通过相应的人、出栈操作得到的?
设将整数1,2,3,4依次进栈,进栈的同时可以出栈,请回答下述问题:
(1)若人、出栈次序为Push(1),Pop(),Push(2),Push(3),Pop(),Pop(),Push(4),Pop(),则出栈的数字序列是什么?(这里Push(i)表示i进栈,Pop()表示出栈)
(2)能否得到出栈序列1423和14327并说明为什么?
(3)请分析1,2,3,4的24种排列中,哪些序列是可以通过相应的人、出栈操作得到的?
【正确答案】:(1)出栈序列为:1324。 (2)不能得到1423序列。因为要得到1 4的出栈序列,则应做Push(1),Pop(),Push(2),Push(3),Push(4),Pop()。这样3在栈顶,2在栈底,所以不能得到2 3的出栈序列。 能得到1432的出栈序列。具体操作为:Push(1),Pop(),Push(2),Push(3),Push(4),Pop(),Pop(),Pop()。 (3)在1,2,3,4的2 4种排列中,可通过相应入、出栈操作得到的序列是:1234,1243,1324,1342,1432,2134,2143,2314,2341,2431,3214,3241,3421,4321,不能得到的序列是:1423,2413,3124,3142,3412,4123,4132,4213,4231,4312。
Top