1. 程式人生 > >進棧與出棧

進棧與出棧

adc span splay cdb isp itl pan 進棧 play

問題描述:有四個元素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一種。

進棧與出棧