棧的壓入 彈出序列

2021-07-11 05:38:50 字數 843 閱讀 7079

題目描述:給定兩個序列,第乙個是壓棧的序列,判斷第二個序列是不是出棧的序列。

思路:

1.模擬壓棧、出棧操作。建立乙個棧tem

2.將第乙個序列中元素依次壓入棧中,並將棧頂元素與第二個序列中元素進行比較,如果相同,則彈出,如果不同則壓入;

3.直到第乙個序列中元素全部壓入棧中,檢測棧是否為空,如果為空,說明第二個序列為出棧序列,反之不是。

**如下:

#include#include#includeusing namespace std;

//實現**

class solution

} //如果棧為空,則說明是出棧序列,如果棧不為空,則說明不是出棧序列

return tem.empty();

}};//測試**

int main()

cout << "enter the pop array: ";

while (cin >> b&&b)

solution solution;

bool ans = solution.ispoporder(tem1, tem2);

if (ans)

else

cout << "the ans is : no" << endl;

system("pause");

return 0;

}

執行結果:

棧的壓入彈出序列

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