此程序并没有把栈的基本操作封装起来,而是直接写到了bracketCheck()函数里,也就是说所有要用的栈的基本操作,都手动实现了一遍,程序各处也都有注释。
* 括号匹配问题
* 用顺序栈来实现
* 当然也可以用链栈来实现
* 原理:最后出现的左括号会最先被匹配
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAXSIZE 100
//定义栈
typedef struct{
char *base;//栈底指针
char *top;//栈顶指针
int stackSize;//栈的最大容量
}SqStack;
//
初始化栈
//bool InitStack(SqStack &S){
// S.base = (char*)malloc(sizeof(char)*MAXSIZE);
// if(!S.base){
// return false;//内存分配失败
// }
// S.top = S.base;
// S.stackSize = MAXSIZE;
// return true;
//}
//
入栈
//bool push(SqStack &S, char e){
// if(S.top-S.base == S.stackSize){
// return false;//栈已满
// }
// *S.top++ = e;
// return true;
//}
//
出栈,并用b带回栈顶元素
//bool pop(SqStack &S, char &b){
// if(S.base == S.top){
// return false;//栈已空
// }
// b = *--S.top;
// return true;
//