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