用数组形式stack实现有效括号判定为什么会缓冲区溢出?
发现如果没有return Isempty这一行代码的话,就不会有缓冲区溢出,但这样显然无法正确判断是否为有效括号。问题出在哪里呢?
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已结题
用数组形式stack实现有效括号判定为什么会缓冲区溢出?
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
1条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
会修bug的猫 2022-12-24 04:07关注代码还是有点问题的
你想想看如果s=( ( ) ) ] 会发生什么我直接说吧,再简化一点,当s=" ) "时
你的代码会执行44,然后执行45行
你看看45行是什么
if(stack.arr[stack.top]=='(' )
你这时候栈为空,stack.top=-1,这不是直接越界了
所以你不应该在末尾判断栈是否为空来判断所有括号有没有匹配上,你应该在每次遇到 右括号 ),],}的时候就进行判断栈是否为空,空则说明匹配失败,非空再判断栈顶元素是否和当前元素匹配本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 1无用举报 编辑记录微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2021-12-10 13:56回答 3 已采纳 解决方法: 把MTGraph G1, G2, G3挪到main函数外,定义为全局变量动态分配G1, G2, G3的内存
- 2019-08-15 06:03回答 1 已采纳 把array的初始化操作放到构造函数中 ``` int* arrays; Stack() { arrays = new int[_capacity]; for (int i = 0
- 2015-11-28 18:46回答 6 已采纳 a[5]说数组里面有5个元素,分别是a[0]、a[1]、a[2]、a[3]、a[4]. a[5]这个元素不存在
- 2022-07-10 22:55脑语言的博客 这是脑语言v0.5.8版的2500个单字(也称为“令”与“一令”),通过【单字编程】(并不仅是中文编程,而是混合英文关键字,但以单字为主的命名)也许是英文不太好时又希望能写代码的其中一种方式。 我在做脑语言...
- 2022-11-12 05:00回答 1 已采纳 给你找了一篇非常好的博客,你可以看看是否有帮助,链接:codeblocks安装后出现问题的可能解决办法
- 2019-03-12 07:42回答 2 已采纳 Based on comments, it appears that the question is "How to print files where the file has a .json
- 2021-02-06 15:42回答 4 已采纳 类名和库重复了,把类名改public class StackDemo {,或者写全名 java.util.Stack<Integer> stack = new java.util.Stac
- 2024-04-19 21:342401_84252890的博客 21、在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印缓冲区,该缓冲区应该是一个(队列 ) 22、举例说明顺序队列的“假溢出”现象。 【解答】假设有一个顺序队列,如图 3-6 所示,队尾指针 rear=4 ...
- 2018-10-09 16:44回答 1 已采纳 This is a little difficult to reproduce on go 1.11 on Ubuntu I am guessing you are using a Microso
- 2022-04-14 13:19回答 3 已采纳 可以使用 while(!stack.empty()) 条件,取出stack中的全部数据:
- 2021-10-01 14:22回答 1 已采纳 scanf("%s", &password)里把&去了,数组名就是数组首地址
- 2022-02-22 01:40hellomq^_^的博客 抽象数据类型(ADT):通常用(数据对象,数据关系,基本操作集)这样的三元组表示; 数据结构:包括逻辑结构、存储结构、数据的运算; 2)数据的逻辑结构(独立于计算机的,与存储结构无关) 包括:线性结构(...
- 2021-06-07 05:15扣叮侠的博客 这个标准通常即***C11,它是C程序语言的现行标准*** C语言现状 年度编程语言 该奖项颁发给了一年中最热门的编程语言 编程语言排行榜查看 为什么要学习C语言? 40多年经久不衰 了解操作系统、编译原理、数据结构与算法...
- 2020-12-05 23:59weixin_39805409的博客 传参的时候,使用指针的话需要解引用才能对参数进行修改,而使用引用可以直接对参数进行修改指针的大小一般是4个字节,引用的大小取决于被引用对象的大小(指的是使用sizeof运算符得到的结果,引用本质上还是使用指.....
- 2020-11-02 08:59是叶十三的博客 前言: 《C语言入门指南》,全文分为3篇,共计34248字,此为合集版,适用初学者入门C语言,非初学者也可以通过...1、为什么发明 C 语言:C 语言的诞生是和 UNIX 操作系统的开发密不可分的,原先的 UNIX 操作系统都是用
- 没有解决我的问题, 去提问
问题事件
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司