棧的壓入彈出序列

2021-09-19 12:50:37 字數 1154 閱讀 9071

輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列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相對應的進入與彈出的順序:步驟

操作棧中資料

彈出的資料

棧頂資料

1壓入1

1不彈出,只壓入12

壓入21,2

不彈出,只壓入23

壓入31,2,3

不彈出,只壓入34

壓入41,2,3,4

不彈出,只壓入45

彈出41,2,343

6壓入5

1,2,3,5

不彈出,只壓入57

彈出51,2,353

8彈出3

1,2329

彈出2121

10彈出1無1

但是對於 1,2,3,4,5要彈出4,3,5,1,2會出現下表所示情況(當把所有資料都壓入進去了,還沒有把所要的數按順序彈出來):步驟

操作棧中資料

彈出的資料

棧頂資料

1壓入1

1不彈出,只壓入12

壓入21,2

不彈出,只壓入23

壓入31,2,3

不彈出,只壓入34

壓入41,2,3,4

不彈出,只壓入45

彈出41,2,343

6彈出3

1,2327

壓入51,2,5

不彈出,只壓入58

910

class solution

if(s.top()!=*popvec_iter);

break;

s.pop();

popvec_iter++;

} if(s.empty()&&popvec_iter==popvec.end())

return true;

else

return false;

}}

棧的壓入彈出序列

題目 輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列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...

棧的壓入彈出序列

1.問題描述 輸入兩個整數序列,第乙個序列表示棧的壓入序列,請判斷第二個序列是否為該棧的彈出序列。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓棧序列,序列4,5,3,2,1是該棧序列對應的乙個彈出序列,但 4,3,5,1,2,就不可能是該壓棧序列的彈出序列。來自 劍指offer...