判斷出入棧的合法性

2021-07-22 21:32:12 字數 890 閱讀 6708

本篇部落格闡述內容:

假設入棧序列是

出棧序列是

那麼我們讓入棧序列入棧,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...