一道数据结构题目,哪个高手说说怎么解啊!

:假设一个算术表达式中可以包含三种括号:(),{},[],且这三种括号可按任意的次序欠套使用,编写判别给定表达式中所含括号是否正确配对出现的算法(已知表达式已经存入数据元... :假设一个算术表达式中可以包含三种括号:(),{},[],且这三种括号可按任意的次序欠套使用,编写判别给定表达式中所含括号是否正确配对出现的算法(已知表达式已经存入数据元素为字符的顺序表中。怎么写啊) 展开
 我来答
指尖落沙
2006-04-04 · TA获得超过417个赞
知道小有建树答主
回答量:416
采纳率:0%
帮助的人:331万
展开全部
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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式