判斷棧的輸出序列是否合法

2021-10-16 12:54:34 字數 752 閱讀 6568

乙個最多可以儲存m個數的棧;按1,2,3...順序入棧並隨機出棧

輸入乙個出棧序列,判斷給出 出棧序列是否合理

乙個棧——按序入棧

乙個數——判斷棧的大小是否超出要求

乙個flag——標誌該序列是否合理

#include

#include

using namespace std;

const

int maxn =

1010

;int sqe[maxn]

;int

main()

for(

int i =

1; i <= n; i++

)int cur_idx =1;

bool flag = true;

// 合法標誌

for(

int i =

1; i <= n; i++)if

(!st.

empty()

&& st.

top(

)== sqe[cur_idx]

)// 注意,top() 和 pop() 都需要判斷是否為空}if

(st.

empty()

&& flag == true)

else

}getchar()

;getchar()

;return0;

}

判斷出棧序列是否合法

問題描述 對於乙個棧,已知元素的進棧序列,判斷乙個由棧中所有元素組成的排列是否是可能的出棧序列。比如,進棧序列為1 2 3 4,則可能的出棧序列有4 3 2 1,1 4 3 2等。而1 4 2 3就不是。輸入形式 從標準輸入讀取第一行是乙個整數n 3 n 10 代表有n個元素,其進棧序列是1 2 3...

判斷出棧序列是否合法

輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。注意 這兩個序列的長度是相等的 ...

poj 1363 判斷棧序列是否合法

已知從1到n的數字序列,按順序入棧,每個數字入棧後即可出棧,也可在棧中停留,等待後面的數字入棧出棧後,該數字再出棧,求該數字序列的出棧序列是否合法 比如 3 2 5 4 1 合法序列 3 1 2 4 5 不合法序列 因為1肯定比2先入棧,所以1不可能比2先出棧 思路 為了測試出棧序列是否正確,將元素...