
正文
c语言栈的括号匹配代码,栈表达式中括号配对问题
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
哪位dalao帮我改一下这个C语言用栈实现括号匹配的代码?
1、只要判断 [) (] 这两种不存在 和 左右括号数量相等 且 第一个不是右括号 就行了。
2、你的pop和getpop的参数e没玩指针和引用,是不会带回值出来的。
3、init(&s); //初始化栈, &这个符号是用来修改s这个实参的值的,不然不能修改。
相关问答
Q1: 括号匹配(c++)
1、知道怎么实现栈后就很简单了:遇到左括号则入栈,遇到右括号则检查栈内是否有元素,没有元素则结果不匹配,有元素则弹出栈顶元素来查看是否符号相匹配。
2、函数返回值类型不能是Status,Status只是泛指类型,至于具体用什么类型,你应该根据实际情况而定。比如你的第一个函数Status InitStack(SqStack &S) ,可以改为int InitStack(SqStack &S) ,其它的你自己根据情况定了。
3、希望对你有所帮助,当然也包括了括号匹配功能。其实括号匹配功能关键就在于左右大括号小括号的位置以及数量判断。根据实例分析一下很快就能写好算法。
4、你注意一下你程序中的括号字符与你输入的字符是不是都在同一个输入法下的。给str全部空间初始化。3 、尝试设断点,单步调试程序。解决不了,把代码发私信给我,我帮你调。
Q2: 括号匹配问题,要求用C语言完成,下面是源代码,求大神解决...
你注意一下你程序中的括号字符与你输入的字符是不是都在同一个输入法下的。给str全部空间初始化。3 、尝试设断点,单步调试程序。解决不了,把代码发私信给我,我帮你调。
设计原理: 主要是利用了栈的结构,在表达式的输入过程中实现对括号是否匹配的判断。根据其括号的原则:小括号之中不能含有大括号或中括号,中括号中不能含有大括号。再由紧密性,左边括号和右边括号是紧密相连的。
了解一下数据结构中的栈(其实就是后入先出),你就知道该怎么实现了。
Q3: C语言栈的括号匹配算法,大侠帮忙啊!
遇到)或者] ,首先检测栈是不是为空,如果不为空,在返回栈顶元素,如果匹配,即为“(”或者“[”,就删除栈顶元素,然后重复。当栈变空了,说明你的括号都配对了,也就YES了。
知道怎么实现栈后就很简单了:遇到左括号则入栈,遇到右括号则检查栈内是否有元素,没有元素则结果不匹配,有元素则弹出栈顶元素来查看是否符号相匹配。
思想是 先进栈,获取第一个半边括号,标记一下,继续进栈直到获取到第二个与之匹配的另一外括号,然后出栈,取出内容。就这样。
Q4: c语言中用栈检查左右括号是否匹配,代码没有有报错,但是匹配结果是错的...
1、另外建议修改pop函数,在st-top=s-top-1;之前先判断s-top,这样运行结果更合理 改过后,可以调试通过。
2、else return 0; //意思就是如果遇到了右大括号的话,那么栈S不是空且栈顶元素是左大括号,//那么就让这个栈顶元素{出栈。//如果栈是空的,或者说栈顶的不是{,那么就return 0,意思也就是表达式不合法。
3、变量重复定义!!结构 s char s[1000] 字符串数组变量,都乱啦。
4、你的pop和getpop的参数e没玩指针和引用,是不会带回值出来的。
5、这个是栈的基本应用,网上搜一下,答案一大堆。
6、如果只有圆括号(没有[ ] 或 { }),不需要构造一个栈。因为用栈实现时,栈里装的都是一模一样的左括号 ( ,因此我们只需定义一个 整型变量 来记录 栈中元素的个数 即可。
c语言栈的括号匹配代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于栈表达式中括号配对问题、c语言栈的括号匹配代码的信息别忘了在本站进行查找喔。








