本篇部落格闡述內容:
假設入棧序列是**的的實現將細節問題處理了,請仔細看看在實現**時還要注意什麼問題!出棧序列是
那麼我們讓入棧序列入棧,1先入,看一看第乙個出棧的是不是1,不是繼續將2壓棧,直到1,2,3,4入棧,4和出棧序列的第乙個匹配到了,我們將入棧的 4 pop掉,然後繼續和出棧序列的第二個匹配,看看是否需要出棧,如不需要,繼續壓棧,以此類推,直到入棧序列全部入棧,並且和出棧序列匹配完畢,若棧此時為空,而且出棧序列也走完了最後一位,那麼匹配成功,否則,匹配失敗!
#include
#include
#include
using
namespace
std;
bool check_legal(int instack, int outstack, int size)
if(s.top () == outstack [j])
if((i == j && j == size))
return
true;
else
return
false;
}}int main()
; //int outstack = ;
int outstack = ;
int sz1 = sizeof(instack)/sizeof(instack[0]);
int sz2 = sizeof(outstack)/sizeof(outstack[0]);
if(sz1 == sz2)
cout
<"pause");
return
0;}
出棧合法性
題目描述 已知自然數1,2,n 1 n 100 依次入棧,請問序列c1,c2,cn是否為合法的出棧序列。輸入包含多組測試資料。每組測試資料的第一行為整數n 1 n 100 當n 0時,輸入結束。第二行為n個正整數,以空格隔開,為出棧序列。對於每組輸入,輸出結果為一行字串。如給出的序列是合法的出棧序列...
出棧的合法性
1788 出棧合法性 時間限制 1 sec 記憶體限制 32 mb 提交 153 解決 60 提交 狀態 討論版 題目描述 已知自然數1,2,n 1 n 100 依次入棧,請問序列c1,c2,cn是否為合法的出棧序列。輸入 輸入包含多組測試資料。每組測試資料的第一行為整數n 1 n 100 當n 0...
判斷元素出棧入棧順序的合法性
思路 假設入棧序列,出棧序列 首先我們將入棧序列的第乙個元素入棧,這是設定乙個指標只想出棧序列的第乙個元素,如果出入棧以後,棧頂 元素和出棧指標所指向的元素相等,那麼就讓棧頂元素出棧,讓指標 最後判斷棧為空就好,若為空,就說明是合法的,如果不是就是不合法。如下 include include inc...