題目描述:給定兩個序列,第乙個是壓棧的序列,判斷第二個序列是不是出棧的序列。
思路:
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...