#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
#define maxSize 100
/*
顺序栈的应用(一) : 括号匹配问题
问题:C语言的算术表达式中的括号只有小括号,编写一个算法判断一个表达式中的括号是否配对?
算术表达式已存入数组exp[]中,表达式中字符的个数为 n
*/
//判断数组中的算术表达式中的小括号是否匹配
int isMatch(char a[],int n)
{
char stack[maxSize];
int top=-1;
for(int i=0;i<n;++i)
{
if(a[i]=='(')
{
stack[++top]=a[i];
}
else if(a[i]==')')
{
if(top==-1)
return 0;
top--;
}
}
if(top==-1)
return 1;
else
return 0;
}
int main()
{
int n;
cin>>n;
char exp[n];
for(int i=0;i<n;i++)
{
cin>>exp[i];
}
cout<<isMatch(exp,n);
return 0;
}
C语言实现数据结构代码(二)-栈和队列-栈-应用-括号匹配问题
最新推荐文章于 2023-07-03 08:28:30 发布