1. 程式人生 > >一個棧的輸入序列為1 2 3 4 5 的出站順序的理解

一個棧的輸入序列為1 2 3 4 5 的出站順序的理解

 一個棧的輸入序列為1 2 3 4 5 的出站順序是什麼?這個經常會在面試的時候出現。

如何判斷棧的進出問題一個棧的輸入序列為1 2 3 4 5,則下列序列中不可能是棧的輸出序列的是( )A. 2 3 4 1

解答:

一個棧的輸入序列為1 2 3 4 5,則下列序列中不可能是棧的輸出序列的是( )
A.2 3 4 1 5 B.5 4 1 3 2C.2 3 1 4 5 D.1 5 4 3 2
這題就選B
這樣的題做多了就找出規律了
先進1和2,2出棧進入3,3出棧,進入4,4出棧,1在出棧,5進,5出棧,所以是23415,A對
進1和2,2出棧進入3,3出棧,進入4,在進入5,5出,4在出,就是23145,C對
1進,1出,2345進,然後5432出,就是15432,D對
B是錯誤,因為5要想出來,就必須五個數都要進棧,那麼出來就一種結果是54321,答案是54132所以不對
這種題找規律,就能做出來


我們都知道棧是先進後出的,可以理解為桶狀結構,

對於上面那種不可能的情況可按下圖理解:


5最先出來說明其他的四個都沒有出來,那麼這四個的順序就必須安照進來的先後順序依次排列,這就要符合先進後出的原理,出來只有一個通道,下面的數字必須在後面才能出來。