一道数据结构题目,哪个高手说说怎么解啊!
:假设一个算术表达式中可以包含三种括号:(),{},[],且这三种括号可按任意的次序欠套使用,编写判别给定表达式中所含括号是否正确配对出现的算法(已知表达式已经存入数据元...
:假设一个算术表达式中可以包含三种括号:(),{},[],且这三种括号可按任意的次序欠套使用,编写判别给定表达式中所含括号是否正确配对出现的算法(已知表达式已经存入数据元素为字符的顺序表中。怎么写啊)
展开
展开全部
int matching(SqList L){
//判定顺序表L所保存算术表达式中括号是否匹配,若匹配则返回1,否则返回0
InitStack(S); //初始化辅助栈S
for (i=0;i
e=L.elem[i];
switch(e){
case ‘(':
case ‘[':
case ‘{': Push(S,e);break;
case ‘)': if (StackEmpty(S)) return ERROR; //右括号个数多于左括号
Pop(S,k);
if (k!=‘(') return ERROR; //括号嵌套错
break;
case ‘]': if (StackEmpty(S)) return ERROR;
Pop(S,k);
if (k!=‘[') return ERROR;
break;
case ‘}': if (StackEmpty(S)) return ERROR;
Pop (S,k);
if (k!=‘{') return ERROR;
}//switch
}//for
if (EmptyStack(S)) return OK; //括号匹配
else return ERROR; //左括号个数多于右括号
}//matching
//判定顺序表L所保存算术表达式中括号是否匹配,若匹配则返回1,否则返回0
InitStack(S); //初始化辅助栈S
for (i=0;i
e=L.elem[i];
switch(e){
case ‘(':
case ‘[':
case ‘{': Push(S,e);break;
case ‘)': if (StackEmpty(S)) return ERROR; //右括号个数多于左括号
Pop(S,k);
if (k!=‘(') return ERROR; //括号嵌套错
break;
case ‘]': if (StackEmpty(S)) return ERROR;
Pop(S,k);
if (k!=‘[') return ERROR;
break;
case ‘}': if (StackEmpty(S)) return ERROR;
Pop (S,k);
if (k!=‘{') return ERROR;
}//switch
}//for
if (EmptyStack(S)) return OK; //括号匹配
else return ERROR; //左括号个数多于右括号
}//matching
上海华然企业咨询
2024-10-28 广告
2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步...
点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询