括號匹配 資料結構 棧 C

2021-10-08 23:14:23 字數 773 閱讀 9800

在程式設計當中我們只會用到三種括號:圓括號(),方括號和花括號{},編譯器在編譯的時候會檢查括號是否正確匹配。例如、}都是合法的匹配。但是([)]則是不合法的匹配。請編寫乙個程式來判斷輸入的括號序列是否合法。

輸入測試資料由多組,每組資料有一行,為( ) [ ] 組成的序列,長度不超過1000

輸出對於每組資料輸出一行,如果是合法匹配則輸出yes,不合法則輸出no,請注意大小寫

樣例輸入

)}
樣例輸出
yes
本題也是解法眾多,但是萬變不離其中,無論如何我們要用到的都是棧的相關知識,在你不懂如何使用棧,修改棧中元素時,不管c語言還是c++都可以直接使用陣列在作為基底,對出棧和進棧等等操作(push(),pop(),empty()…)分別寫乙個函式,在主函式中呼叫使用即可,此處我們直接使用棧來實現,來複習練習棧的使用。
#include#includeusing namespace std;

bool ok(string &s)

if (c == ']')

if (c == '}')

}return s.empty();//返回棧為空

}int main() else

}return 0;

}

1.本題首先要知道哪些條件才可以判斷合法的匹配

2.然後理好思緒每一步要實現的內容

3.正確使用棧

4.操作過程中倘若有誤,一定要多測試,實踐出真知,有時可以用cerr代替cout來輸出表示測試的資料。

資料結構 棧實現括號匹配

真正學習之後,才發現那些所謂的大嬸不過是多用功了些。不知道以前為什麼不親自動手做做,原來這麼簡單。include include include include 棧的鏈式儲存 typedef struct data typedef struct stack 初始化空棧 void initstack ...

資料結構 鏈棧實現括號匹配

最近在學資料結構,所以發的大多數都是關於資料結構的題 括號匹配原來用動態規劃做的一道題,現在老師要用棧來實現,用就用吧,還不讓用函式,只能用鏈棧,不開森 很簡單的思路,如果是 就看棧頂元素是否匹配,匹配就往下操作,如果表示式完了,棧不為空,不匹配 如果棧空了,表示匹配 下面是 的實現 include...

資料結構 棧的應用 括號匹配

include include include 鏈式棧 括號匹配校驗 define success 0 define failure 1 typedef struct nodestnode def typedef struct linkstackstlinkstack def typedef voi...