c语言栈是什么?像这题和栈有什么关系

如题所述

    栈是一种数据结构,用于存放数据,可以理解为羽毛球筒,羽毛球就是数据,最先放进去的最后才能拿出来。

    c语言可以用结构体来定义栈,每个元素以指针指向它前面的元素,最前面的元素称为栈顶,它的指针为空。

    依次读入字符,遇到括号则放入括号栈,遇到其他字符则跳过。

    若遇到右括号,则判断它前面的元素是否是和他匹配的左括号,若不是,则返回"不匹配",若是,则将他们2个丢掉,让左括号的指针指向空即可。

追问

那根直接用数组有什么不同

追答

节省空间,逻辑清晰

追问

那还有可能是(【)】这样是不匹配那用栈不就会判断匹配

追答

读到“)”后前面是“【”,判断不匹配

追问

能帮忙下吗

是不是写的指针有问题

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-03-08
栈就是先进后出的一种数据结构
栈的两操作有入栈和出栈比如入栈
1 2 3 4 5 6 7
一个一个压入栈中最后一个是在最顶部(右边看成上左边看成下)
出栈的时候就是从栈定取到栈底
7 6 5 4 3 2 1
这种

这题就是利用栈这种特性解决括号匹配的问题
是要写代码吗
自己不想写的话我可以有偿代劳的哦本回答被网友采纳
相似回答