括号匹配 3.3.1栈在括号匹配中的应用
假设表达式中允许包含三种括号:圆括号,中括号,大括号。其嵌套的顺序任意,例如{)()})匹配失败
([])(){} 匹配成功!!!
//顺序栈
#include
#define Maxsize 10typedef struct {
char data[Maxsize];
int top;
}SqStact;
void InitStact(SqStact &S){
S.top=0;
}
bool Emptystact(SqStact S){
if(S.top==0) return true;
else return false;
}
bool Push(SqStact &S,char c){
if(S.top==Maxsize) return false;
S.data[S.top]=c;
S.top++;
return true;
}
bool Pop(SqStact &S,char &c){
if(S.top==0) return false;
S.top--;
c=S.data[S.top];
return true;
}bool bracketCheck(char str[],int length){
SqStact S;
InitStact(S);
for(int i=0;
i
【数据结构—考研代码实现|栈在括号匹配中的应用】运行演示
文章图片
推荐阅读
- C语言进阶|【C语言进阶16——通讯录(基础版、动态内存版、文件管理版)】
- C语言进阶|【C语言进阶14——文件操作(1)】
- 循环卷积|线性卷积、循环卷积、周期卷积的定义、计算方法及三者之间的关系
- C语言|C语言数据类型及typedef下的uint8_t / uint32_t
- 小波变换|基于循环卷积的一维小波变换程序验证(C语言)
- 44.mapping下的数据结构
- leecode题解|「leetcode」973. 最接近原点的 K 个点【优先级队列】详解
- 大厂面试高频题之数据结构与算法|认识异或运算的本质与基本规律,0^x=x,x异或x=0,有交换律,结合律,与顺序无关
- C语言|C语言 用数组的绝对值替换它的,C语言深度解剖 -- 关键字(一)