資料結構題目 括號是否匹配

2021-10-09 01:20:40 字數 401 閱讀 7558

題目:對於給定的簡單算術表示式(只包含「+」 「-「 」*」 「/「 「(」 「)」),存放在字元陣列expr中,長度為n。從左到右逐個字元掃瞄,利用棧(已提供的棧和基本操作,而且不會出現棧滿的情況)設計乙個括號是否匹配的演算法。

個人理解:當掃瞄到「(」的時候將其入棧,掃瞄到「)」的時候就將棧中的「(」彈出,若是棧中還能彈出「(」,則與當前的「)」匹配。當掃瞄到「)」,但是棧已經為空時,則「)」多。若掃瞄完「)」,而棧中還存留「(」時,則「(」多。

void parenthsis(char expr , int n)

//若是棧中存留著左括號,則不匹配

} }if(!stackempty(s)) cout<<"當前左括號比右括號多,不匹配"

資料結構 括號匹配

三種括號形式 輸入一段字串,判斷其括號是否匹配。如下 括號匹配問題 include include include define stack init size 100 define stackincrement 10 define error 0 define true 1 define fals...

資料結構 括號匹配

利用棧來實現字串的左右括號匹配 思路 對於字串遍歷 左括號字元入棧 遇到右括號字元就從棧頂彈出原素 彈出和右括號進行匹配 如果匹配成功繼續 匹配不成果報錯 注意 入棧的是字串的位址 不能說會變的臨時變數 接字串時需要用char 型別去接 並且進行強制型別轉換 匹配的時候再用 out表示彈出元素取位址...

資料結構題目 16 括號匹配的檢驗

描述 從鍵盤輸入任意括號序列,程式設計判斷括號是否匹配。假設允許有三種括號 圓括號 方括號和花括號 其巢狀的順序隨意。為了正確檢驗輸入序列的括號匹配問題,要使用棧結構來實現。1 在檢驗演算法中建立乙個棧,讀入圓括號 方括號和大括號組成的序列 2 若是左括號直接入棧,等待同類的右括號與之匹配 若讀入的...