四、栈的实现及其典型应用
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,1、栈的定义与实现栈的定义 栈是一种特殊的线性表,仅能在线性表的一端进行操作 栈顶(Top):允许操作的一端 栈底(Bottom):不允许操作的一端栈的性质:后进先出(LIFO)栈的一些常用操作
千家信息网最后更新 2025年12月03日四、栈的实现及其典型应用
1、栈的定义与实现
栈的定义
栈是一种特殊的线性表,仅能在线性表的一端进行操作
栈顶(Top):允许操作的一端
栈底(Bottom):不允许操作的一端
栈的性质:后进先出(LIFO)
栈的一些常用操作
创建栈
销毁栈
清空栈
进栈
出栈
获取栈顶元素
获取栈的大小
栈的存储实现
顺序存储实现
链式存储实现
小结
栈是一种特殊的线性表
栈只允许在线性表的一端进行操作
栈通常有两种实现方式
顺序结构实现,附件中01_SeqStatic文件夹
链式结构实现,附件中02_ListStatic文件夹
2、栈的典型应用一[字符匹配]
在C语言中有一些符号是成对匹配出现的,利用栈可以实现类似编译器括号是否匹配的能力。
算法思路:
从第一个字符开始扫描 当遇见普通字符时忽略,当遇见左符号时压入栈中 当遇见右符号时从栈中弹出栈顶符号 进行匹配 匹配成功:继续读入下一个字符 匹配失败:立即停止,并报错 结束: 成功:所有字符扫描完毕,且栈为空 失败:匹配失败或所有字符扫描完毕但栈非空算法框架
小结
当需要检测成对出现但又互不相邻的事物时可以使用栈"后进先出"的特性
栈非常适合于需要"就近匹配"的场合
代码实现,附件中02_ListStatic文件夹内
2、栈的典型应用二[小型计算器的实现]
在数学计算中,人类习惯类似"9 + (3 - 1) * 5"这样的中缀表达形式,即数字在运算符号的两边,而对于计算机而言,更适合处理算式是后缀表达式,即类似"9 3 1 - 5 * +"这样的形式,因此必然有,从中缀表达式到后缀表达式的过程,并且计算机利用后缀表达式计算的过程,而这些都可以通过栈实现。
中缀表达式转换为后缀表达式的思路
遍历中缀表达式中的数字和符号 对于数字:直接输出 对于符号: 左括号:进栈 符号:与栈顶符号进行优先级比较 栈顶符号优先级低:进栈 栈顶符号优先级不低:将栈顶符号弹出并输出,之后进栈 右括号:将栈顶符号弹出并输出,直到匹配左括号 遍历结束:将栈中的所有符号弹出并输出算法框架
后缀表达式计算的思路
遍历后缀表达式中的数字和符号 对于数字:进栈 对于符号: 从栈中弹出右操作数 从栈中弹出左操作数 根据符号进行运算 将运算结果压入栈中 遍历结束:栈中的唯一数字为计算结果算法框架
小结
中缀表达式是人习惯的表达方式
后缀表达式是计算机喜欢的表达方式
通过栈可以方便的将中缀形式变换为后缀形式
中缀表达式的计算过程类似程序编译运行的过程
代码实现,附件中02_ListStatic文件夹内
算法的实现:附件
符号
表达式
后缀
中缀
字符
数字
算法
附件
一端
形式
括号
文件
文件夹
过程
输出
优先级
后进
小结
思路
方式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
未成年网络安全教育宣传标语
如何找出网络安全密钥是什么
shell数据库日志常用命令
编译服务器 版本管理
课程思政软件开发
中国工商行软件开发基地珠海
samp0.3z服务器
永川软件开发职位
国铁集团网络安全管理的三条红线
关于数据库安全的研究
江阴asus服务器维修网点
网络安全工程师的项目实例
摸清人才底数建立完善人才数据库
默认oracle数据库
江苏虚拟服务器管理软件云空间
u盘网络安全
数据库都有哪些检索功能
影响软件开发进度的因素
德国我的世界服务器
数据库一般多少天可以学会
手机扫码录入数据库php源码
软件开发演化模型的优缺点
tornado 服务器
wowhead数据库中文说明书
深圳电力应急网络技术开发动态
clash 如何设置代理服务器
制作数据库结构对象数据的拷贝
软件开发 牛津词典
数据库地域表
数据库一般多少天可以学会