检验括号是否匹配可以用堆栈来实现,当遇到 (、[或{进栈,遇到 ) 、]或}出栈进行匹配检验,如果出现不匹配的情况立即结束,否则继续取下一个字符。如果没有遇到不匹配的情况,最后判断栈是否为空,栈为空,括号匹配,否则不匹配。并设置大、中、小括号的优先级(priory)为3、2、1 ,且设优先级(priory)的初始值为4。从第一个字符开始扫描表达式,如果是左括号,和栈中的括号的优先级对比,如果优先级比栈中括号的优先级高或者等于栈中的优先级,则说明不匹配,如果优先级小于栈中括号的优先级,将这个括号也入栈;如果是右括号,和栈中的栈顶元素比较,如果和栈顶元素匹配,则弹出栈定元素;如果栈中没有元素,说明括号不匹配。 继续扫描,直到扫描完整个表达式。
标签:
堆栈
上传时间:
2016-11-22
上传用户:蠢蠢66