进栈与出栈
问题描述:有四个元素abcd依次入初始为空的栈中,入栈之后可停留,可出栈。最后所有元素都出栈,请分析并写出所有可能的分别以a,b,c,d开头的出栈序列。
首先分析以a开头的出栈序列。序列前两位无非3种:ab,ac,ad。再分别分析这三种开头的序列分别对应着几种可能序列。
ab显然有abcd和abdc两种,ac有acbd和acdb两种,而ad只有adcb一种,因为在仅有a在栈外,bcd都在栈内的情况下,栈内从上到下的顺序只有dcb一种,这种情况比较特殊。因此以a开头的出栈序列共有abcd,abdc,acbd,acdb,adcb五种。
按照同样的方法可以得出以b开头的出栈序列有bacd,badc,bcad,bcda,bdca五种。
以c开头的出栈序列有cbad,cbda,cdba三种。
以d开头的出栈序列只有dcba一种。