试写出一个判别表达式中开、闭括号是否配对出现的算法。

admin2014-12-25  30

问题 试写出一个判别表达式中开、闭括号是否配对出现的算法。

选项

答案Status Express(char*str) { /*假设表达式放入一个字符串str中,利用栈判断表达式中的括号是否匹配*/ InitStack(S); while(*str!=’\0’) {if(*str==’(’)Push(S,*str); if(*str=’)’&&(StackEmpty(s)l IPop(s,temp)!=’(’)) return FALSE; str++: } if(StackEmpty(S))return OK; else return FALSE; }

解析 由于表达式中只含一种括号,因此只有两种错误情况,即:在没有左括号的情况下(左括号数少于右括号数),出现右括号或者整个表达式中的左括号数多于右括号数。现在可以设一个堆栈,来检验括号是否匹配。
转载请注明原文地址:https://kaotiyun.com/show/tYVx777K
0

最新回复(0)