括号匹配检验 利用栈编写满足下列要求的括号匹配检验程序:假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,即([]())或[([][])]等为正确的格式,[(]或([())或(()])均为不正确的格式
输入一个包含上述括号的表达式,检验括号是否配对
Inpu t 第一行:输入一个包含圆括号或方括号、不超过80个字符的表达式串
Ou tpu t 第一行:若输入表达式括号匹配,输出"matching"; 若不匹配,输出具体信息:"isn't matched pairs", 或"lack of left parenthesis"或"lack of right parenthesis" ty pedef char SElemTy pe; #inclu de"malloc
h" #inclu de"stdio
h" #inclu de"math
h" #inclu de"process
h" // ex it() #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 ty pedef int Statu s; // Statu s 是函数的类型,其值是函数结果状态代码,如OK 等 #define STACK_INIT_SIZE 10 // 存储空间初始分配量 #define STACKINCREMENT 2 // 存储空间分配增量 struct SqStack { SElemType *base; // 在栈构造之前和销毁之后,base 的值为 NULL SElemType *top; // 栈顶指针 int stacksize; // 当前已分配的存储空间,以元素为单位 }; // 顺序栈 Status InitStack(SqStack &S) { S
base=(SElemType *)mall