第3题:
假设表达式中允许包含3种括号:圆括号、方括号和大括号。设计一个算法采用顺序栈判断表达式中的括号是否正确配对。
设置一个栈 st,扫描表达式 exp,遇到‘(’、‘[’或‘{’,则将其进栈;遇到‘)’ , 若栈顶是‘(’,则继续处理,否则以不配对返回假;遇到‘]’,若栈顶是‘[’,则继续处理, 否则以不配对返回假;遇到‘}’ ,若栈顶是‘{’ ,则继续处理,否则以不配对返回假。在 exp 扫描完毕,若栈不空,则以不配对返回假;否则以括号配对返回真。本题算法如下: bool Match(char exp[],int n) { LinkStNode *ls; InitStack(ls); int i=0; ElemType e; bool flag=true; while (i