C語言 檢查括號是否匹配

2021-10-05 09:43:21 字數 1424 閱讀 2285

括號不匹配情型

實現**

main函式

執行截圖

我們有這樣一組括號序列

根據下面的序號我們可以知道第乙個括號與最後乙個括號進行匹配,第二個與倒數第二個進行匹配其他的以此類推,我們發現括號匹配具有先進後匹配的特性,這一特性剛好和棧的特性相匹配(先進後出),我們利用棧的原理進行儲存

當我們遇到(,[,這一類括號使我不讓他們入棧反而讓棧頂元素出棧,與之相匹配如圖

若出棧的括號能與此括號匹配則繼續檢查後續括號序列

如圖這兩個括號在現實世界中也是不合法的括號型別,遇到這種情況,我們檢查到此處無需在比較後續括號序列

如圖

這型別的特點是其他的匹配完了,但是括號序列中還有括號無法匹配

如圖

這型別的特點是括號序列中無括號在匹配,但棧中還有元素

以上這三種情況我們都需考慮到

#define maxsize 50

#define true '1'

#define false '0'

typedef

struct queue

queue;

#include

"括號匹配.h"

#include

#include

intmain()

else

switch

(value[i])}

break

;case

'}':

}break

;case

']':

}break

;default

:break;}

} i++;}

if(q.top !=-1

)//當括號匹配完之後,棧裡面還剩括號,則括號不匹配

if(i < number)

//如果i小於括號序列數,則括號序列還有括號未匹配,說明括號不匹配

C程式括號匹配檢查

問題描述 編寫一程式檢查c源程式檔案中 等括號是否匹配,並輸出第乙個檢測到的不匹配的括號及所對應括號所在的行號 程式中只有乙個括號不匹配 注意 1.除了括號可能不匹配外,輸入的c源程式無其它語法錯誤 2.字元常量 字串常量及注釋中括號不應被處理,注釋包括單行注釋 和多行 注釋 3.字元和字串常量中不...

牛客網 檢查括號匹配是否合法 Python

演算法的基本思想 1.凡出現左括弧,則進棧 2.凡出現右括弧,首先檢查棧是否空 若棧空,則表明該 右括弧 多餘 否則和棧頂元素比較,若相匹配,則 左括弧出棧 否則表明不匹配。3.表示式檢驗結束時 若棧空,則表明表示式中匹配正確,否則表明 左括弧 有餘 string list input temp c...

C語言中利用棧檢測括號是否匹配

檢測括號是否匹配的演算法中,棧的特性是最符合括號特點的。棧的先進後出將括號的匹配正好完美實現。思想 從字串開頭向後逐個檢測,檢測到除括號外的元素就跳過。檢測到左括號時,就進行入棧操作,繼續向後檢測。檢測到有括號時,就檢查棧頂元素是否是匹配的左括號。若不匹配,則直接返回錯誤訊號,使程式結束 若匹配,進...