数据结构之栈的应用----C程序的括号配对检查

本文介绍了如何使用栈来检查C程序的括号配对问题。通过理解栈的先进后出特性,文章阐述了括号配对的基本思想,包括遇到括号时push到栈中,配对时pop出来,以及处理双引号和注释符的特殊情况。此外,还讨论了获取文本、初始化栈、判断括号匹配等功能的实现步骤。
摘要由CSDN通过智能技术生成

这周学完了严老师的栈及其应用。

已经对栈的应用有了一定的了解了,并且感觉到数据结构实在是很强大,它几乎可以解决我们生活中的大部分问题。

关于栈的基本常识,这里不做过多的解释,总之,其核心就是先进后出(FILO)

联想到这种模式我们就可以很容易的知道,栈可以有如下几种应用:

1、进制之间的转换

2、C程序的括号配对检查

3、迷宫求解问题

4、算术表达式求值

5、递归函数

......


这里,我将以一个括号配对检查的程序为例,讲述栈的应用。。。(之一)

起初看到这个题目是在K&R的书上看见的,当时看这个题时,简直是找不到东南西北,就算看了答案也是模棱两可的,

现在时隔半年,当我学到栈的时候,我才对这个程序有了一个新的角度去理解,感觉着用栈去解决这个程序在思想上

很容易理解,但是效率上还不清楚,毕竟能力还没达到可以提高程序运行效率的地步。


首先,我们得了解实现这个程序的基本思想

1、我们从一个C程序文本中查找括号(包括{},(),[],<>),当我们检测到其中之一时,就将它push到栈中,如果栈里的

top元素和它配对了(如:"{和}","(和)","[和]"

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值