檢驗括號是否匹配可以用堆棧來實現,當遇到 (、[或{進棧,遇到 ) 、]或}出棧進行匹配檢驗,如果出現不匹配的情況立即結束,否則繼續取下一個字符。如果沒有遇到不匹配的情況,最后判斷棧是否為空,棧為空,括號匹配,否則不匹配。并設置大、中、小括號的優先級(priory)為3、2、1 ,且設優先級(priory)的初始值為4。從第一個字符開始掃描表達式,如果是左括號,和棧中的括號的優先級對比,如果優先級比棧中括號的優先級高或者等于棧中的優先級,則說明不匹配,如果優先級小于棧中括號的優先級,將這個括號也入棧;如果是右括號,和棧中的棧頂元素比較,如果和棧頂元素匹配,則彈出棧定元素;如果棧中沒有元素,說明括號不匹配。 繼續掃描,直到掃描完整個表達式。
標簽:
堆棧
上傳時間:
2016-11-22
上傳用戶:蠢蠢66