设算术表达式由字符串b表示,其中可以包括三种括号:圆括号、方括号以及花括号,嵌套的顺序随意,如:“{[()]()}”。试编写算法,实现判定给定表达式中所含括号是否正确配对的出现。

admin2014-12-08  43

问题 设算术表达式由字符串b表示,其中可以包括三种括号:圆括号、方括号以及花括号,嵌套的顺序随意,如:“{[()]()}”。试编写算法,实现判定给定表达式中所含括号是否正确配对的出现。

选项

答案设tag为括号是否正确配对的标志,用0表示不正确的配对,1表示正确的配对。另设一个栈S。若当前处理字符为左括号,就将对应的右括号进栈。当遇到右括号时,直接与栈顶元素进行比较,若相等,则退栈;否则返回不正确配对标志。当整个算术表达式检测完毕且栈为空时,表示括号正确配对,否则括号不正确配对。算法描述如下: #deftne MAX 1000 int JLtdgeExp(char*b) { char S[MAX]; int i,top=0,tag=1; for(i=0;tag&&b[i]!=\

解析
转载请注明原文地址:https://jikaoti.com/ti/w0ajFFFM
0

最新回复(0)