5):利用栈编写满足下列要求的括号匹配检验程序:假设表达式中允许包含两种括号:圆括号和方括号 ,其嵌套的顺序随意,即([]())或[([][])]等为正确的格式,[(]或([())或(()])均为不正确的格式
输入一个包含上述括号的表达式,检验括号是否配对
本题给出部分 check()函数,要求将 check()函数补充完整,并完成整个程序
typedef char SElemType; #include”malloc
h" #include"stdio
h” #include”math
h” #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 typedef int Status; // Status 是函数的类型,其值是函数结果状态代码,如 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 *)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(
base){return ERROR;}S
top = S
base;S
stacksize=STACK_INIT_SIZE;return OK;} Status StackEmpty(SqStack S) { if(S
top == S