一道数据结构题:设计算法判断一个算术表达式的圆括号是否正确配对。

对表达式进行扫描,凡遇‘(’就进栈,遇‘)’就退掉栈顶的‘(’,表达式扫描完毕,栈应为空。用C++语言编写,谢谢!... 对表达式进行扫描,凡遇‘(’就进栈,遇‘)’就退掉栈顶的‘(’,表达式扫描完毕,栈应为空。用C++语言编写,谢谢! 展开
 我来答
1a2d3e
推荐于2017-05-26 · TA获得超过538个赞
知道小有建树答主
回答量:441
采纳率:0%
帮助的人:359万
展开全部
#include "seqstack1.h"
#include "stdio.h"

void BracketMatch(char *str);

void BracketMatch(char *str) /* str[]中为输入的字符串,利用堆栈技术来检查该字符串中的括号是否匹配*/
{
SeqStack S;
int i;
char ch;

InitStack(&S);

for(i=0; str[i]!='\0'; i++) /*对字符串中的字符逐一扫描*/
{
switch(str[i])
{
case '(':
case '[':
case '{':
Push(&S,str[i]);
break;
case ')':
case ']':
case '}':
if(IsEmpty(&S))
{
printf("\n右括号多余!");
return;
}
else
{
GetTop(&S,&ch);
if(Match(ch,str[i])) /*用Match判断两个括号是否匹配*/
Pop(&S,&ch); /*已匹配的左括号出栈*/
else
{
printf("\n对应的左右括号不同类!");
return;
}
}
}/*switch*/
}/*for*/
if(IsEmpty(&S))
printf("\n括号匹配!");
else
printf("\n左括号多余!");
}

void main()
{
char str[100];
printf("please input:");
gets(str);
BracketMatch(str);
}
这是对所输入的字符串进行括号匹配,所有的括号都包括,你可以参考一下,另外这是c语言写的代码,你可以适当的修改一下。。。。有问题再联系。。。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
paykka
2025-08-05 广告
Paykka 的数字化流程涵盖了开户、收款、提现等全流程,从资料提交、账户开通到各种资金操作,都能在线上完成,无需用户进行线下干预,简化了操作步骤,提升了整体的操作效率。... 点击进入详情页
本回答由paykka提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式