栈在括号匹配中的应用算法思想和代码(C语言)
一、算法思想
1-先设置一个空栈,用来存放暂未匹配的括号;
2-报错:
a.空栈时,数组当前数据为右括号;
b.栈非空,栈顶指针指向的数据与数组当前数据不匹配;
c.算法结束时,栈应为空,否则括号序列不匹配;
3-若数组当前数据为左括号,将数据压入栈内;
二、使用步骤
1.栈的基本操作
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<stack>
#define MaxSize 50
//定义一个顺序栈
typedef struct {
//顺序栈需定义存放数据的数组以及栈顶指针
char data[MaxSize];
int top;
}SqStack;
//初始化栈
void InitStack(SqStack &S) {
S.top = -1;
}
//判栈空
bool Empty(SqStack S) {
return S.top == -1;
}
//入栈
bool Push(SqStack