imooc数据结构探险-栈篇 栈应用括号匹配二 由群友启发改良james_yuan老师算法

如图所示

 

引用群友内容

//老师代码有点麻烦了,不用声明两个mystack的,直接判断是否是左括号,

//是的话就在mystack中push另一半括号;如果是右括号且又不是需要的括号,
//就直接打印不匹配,如果是需要的右括号,就pop掉左括号。最后看mystack中栈顶是否为0,为0则打印括号匹配
/*
老师最后一点其实错了,default 其实没有必要写,只要把pNeedStack->pop(currentNeed)改为
if(!pNeedStack->pop(currentNeed))
 
 
{
 
 
currentNeed=0;
 
 
}
便够了,第一次输入“【()】】“显示错误是因为,循环到倒数第二个字符时,
pNeedStack栈为空导致pNeedStack->pop(currentNeed)返回了一个false,currentNeed没有置于0,仍为”】“,
导致循环到最后一个字符时str[4]==currentNeed,str[4]没有入栈,pStack最后为空才会出错.把crrentNeed置于0便好
*/

 

转载于:https://www.cnblogs.com/romanten/p/6828366.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值