棧的push pop序列是否正確

2021-06-07 02:34:12 字數 912 閱讀 2759

題目:輸入兩個整數序列。其中乙個序列表示棧的push順序,判斷另乙個序列有沒有可能是對應的pop順序。為了簡單起見,我們假設push序列的任意兩個整數都是不相等的。

比如輸入的push序列是1、2、3、4、5,那麼4、5、3、2、1就有可能是乙個pop系列。因為可以有如下的push和pop序列:push 1,push 2,push 3,push 4,pop,push 5,pop,pop,pop,pop,這樣得到的pop序列就是4、5、3、2、1。但序列4、3、5、1、2就不可能是push序列1、2、3、4、5的pop序列。

分析:這到題除了考查對棧這一基本資料結構的理解,還能考查我們的分析能力。具體的實現**如下:

// isstackpushpop.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include

#include

using namespace std;

bool isstackpushpop(int a, int b, int n)

} return ms.empty();

}int main()

;int b = ;

//int b=;

//int b=;

cout<

// isstackpushpop.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include #include using namespace std;

bool isstackpushpop(int a, int b, int n)

} return ms.empty();

}int main()

; int b = ;

//int b=;

//int b=;

cout<

棧的push pop序列

棧的push pop序列 輸入兩個整數序列。其中乙個序列表示棧的push 順序,判斷另乙個序列有沒有可能是對應的 pop順序。為了簡單起見,我們假設 push 序列的任意兩個整數都是不相等的。比如輸入的push 序列是1 2 3 4 5,那麼4 5 3 2 1就有可能是乙個 pop系列。因為可以有如...

棧的push pop序列

題目 輸入兩個整數序列。其中乙個序列表示棧的push順序,判斷另乙個序列有沒有可能是對應的pop順序。為了簡單起見,我們假設push序列的任意兩個整數都是不相等的。比如輸入的push序列是1 2 3 4 5,那麼4 5 3 2 1就有可能是乙個pop系列。因為可以有如下的push和pop序列 pus...

棧的PUSH POP序列

輸入兩個整數序列,其中乙個表示棧的push順序,判斷另乙個序列有沒有可能是對應的pop序列。下面使用乙個棧來模擬這個操作過程,棧頂元素等於出棧序列中的元素時出棧,不等於時入棧。如果棧正常pop直到為空,說明序列是對應的pop序列返回真,否則返回假 1 pst 為已經初始化的棧 2 input為輸入棧...