#include<stdio.h>
#include<stdlib.h>
#define Maxsize 10
typedef struct SqNode{
int data[Maxsize];
int tag = 0;
int rear,front;
}SqNode;
void InitStack(SqNode &S){
S.front=S.rear=0;
S.tag=0;
}
void Push(SqNode &S,char e){
S.data[S.tag]=e;
S.tag=S.tag+1;
}
void Pop(SqNode &S,char &e){
e=S.data[S.tag];
S.tag=S.tag-1;
}
bool IsEmpty(SqNode &S){
if(S.tag=0){
printf("为空");
return true;
}else{
printf("不为空\n");
return false;
}
}
void BrakcketsCheck(char *str){
SqNode S;
char e;
InitStack(S);
int i=0;
while(str[i]!='\0'){
switch(str[i]){
case '(' :Push(S,'(');printf("(进入\n");
break;
case '[' :Push(S,'[');printf("[进入\n");
break;
case '{' :Push(S,'{');printf("{进入\n");
break;
case ')' :Pop(S,e);printf(")出\n");
if(e!='('){
printf("()匹配\n");
} ;
break;
case ']' :Pop(S,e);printf("]出\n");
if(e!='['){
printf("[]匹配\n");
} ;
break;
case '}' :Pop(S,e);printf("}出\n");
if(e!='{'){
printf("{}匹配\n");
} ;
break;
default: break;
}
i++;
}
}
int main(){
char *str =(char*)"({})";
BrakcketsCheck(str);
}
王道数据结构P96.01
最新推荐文章于 2024-09-24 18:06:35 发布
文章描述了一个用C语言编写的程序,通过栈数据结构实现对输入字符串中括号的匹配检查。函数`BrakcketsCheck`利用`SqNode`结构和栈操作来确保输入的表达式中的括号正确配对。
摘要由CSDN通过智能技术生成