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