1 解题思路
构造包含顶指针,底指针和增量的结构体。以此建立一个空栈。然后依次读入输入的字符,存放至栈中。最后从栈中依次读出字符。分别设置三种括号的标志。当右括号读出时标志加一,当左括号读出时标志减一。如果表达式括号匹配,则三种标志位都等于0,如果括号不匹配则标志位不等于0,最后输出结果。
2 各函数功能
// 构造一个空栈
int InitStack(SqStack *S);
// 让e入栈
int Push(SqStack *S, char e);
// 让e出栈
int Pop(SqStack *S, char *e);
// 判断栈是否为空,空返回0,非空返回1
int isEmpty(SqStack *S);
// 判断括号是否匹配,通过计数器计算前后括号数量。如果三个计数器都为0,括号匹配
int match(SqStack *S, int counter);
// 流程控制,并且建立栈S
int main();
参考文档和完整的文档和源码下载地址: