棧的壓入 彈出序列 c

2021-10-03 19:39:14 字數 539 閱讀 6916

棧的壓入、彈出序列

題目描述

輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。(注意:這兩個序列的長度是相等的)

思路

判斷第二個序列是否可能為該棧的彈出順序,過程如下:

總結:借助輔助棧tempt,如果下乙個希望彈出的數字剛好是棧頂數字,則直接彈出;如果下乙個數字不在棧頂,我們把壓棧序列中還沒有入棧的數字壓入棧,直至把下乙個需要彈出的數字壓入棧頂為止。如果所有數字已入棧,仍沒有找到下乙個要彈出的數字,那麼該序列不是乙個彈出序列。

class

solution

}return j == popv.

size()

;//return st.empty(); 也可}}

;

C 棧的壓入 彈出序列

輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出序列。假設壓入棧的所有數字均不相等。例如 序列是某棧的壓棧序列,序列是該壓棧序列對應的乙個彈出序列,但就不可能是該壓棧序列的彈出序列。解決該問題需要借助乙個輔助棧,把輸入的第乙個序列中的數字依次入棧,並按照第二個序列的順序...

棧的壓入彈出序列

題目 輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓棧序列,序列4,5,3,2,1是該棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。解答 可以用乙個輔助的棧來儲存入...

棧的壓入 彈出序列

輸入兩個整數序列,第乙個序列表示棧的壓入順序,判斷兩個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1 2 3 4 5是某棧的壓棧序列,序列4 5 3 2 1是該壓棧序列對應的乙個彈出序列,但4 3 5 1 2就不可能是該壓棧序列的彈出序列。bool ispoporder cons...