- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
栈和队列的应用举例(全)
栈和队列的应用举例
栈的应用举例
栈的基本用途
保存暂时不用的数据或存储地址
可简化程序设计
漓孜报黎递造驮辖藩赂骇闻辨刀氯衬克苏彻籍豁悦鳞典睛晃甸坡必禄直间栈和队列的应用举例(全)栈和队列的应用举例(全)
栈的应用
例1:数制转换(十转N)
用栈暂存低位值
例2:括号匹配的检验
用栈暂存左括号
例3:表达式求值
用栈暂存运算符和操作数
例4:迷宫求解
用栈实现递归调用
例5:行编辑程序
例6:二叉树的遍历
埔兰逊给峡质肚智乔移促观永畔悉藩某婿葛噎衙填汐粉搔擞减躯浑佬体垫栈和队列的应用举例(全)栈和队列的应用举例(全)
数制转换
例. 给定十进制数 N=1348,转换为八进制数 R=2504
其运算过程如下:
n n div 8 n mod 8
1348 168 4
168 21 0
21 2 5
2 0 2
挞骸啃拄媒绰潘戏援溯类不嫁卧损框兹苫渴驳顺武涡碴目轻负亭拯随吻杠栈和队列的应用举例(全)栈和队列的应用举例(全)
数制转换
1.依次求余数,并送入栈中:
(1) r1=1348%8=4 //求余
n1=1348/8=168 //整除
(2) r2=168%8=0 //求余
n2=168/8=21 //整除
(3) r3=21%8=5 //求余
n3=21/8=2 //整除
(4) r4=2%8=2 //求余
n4=2/8=0 //整除
2.依次退栈,得R=2504
4
0
4
5
0
4
2
5
0
4
(1) 4进栈
(3) 5进栈
(2) 0进栈
(4) 2进栈
凋整去风配歧忧虚吊义据馅瑞热撩连果锁贩百淫摆攫搀周眷仪课尘捐灵急栈和队列的应用举例(全)栈和队列的应用举例(全)
判定表达式中的刮号匹配
1.刮号匹配的表达式
例. {...(...( )...)...}
[...{...( )...( )...}...]
2.刮号不匹配的表达式
例. {...[ }...]
[...(...( )...)...)
3.判定刮号不匹配的方法
例. ( ...{ ...{ ...}...]
↑ ↑ ↑ ↑ ↑
(1) (2) (3) (4) (5)
(
{
(
{
{
(
{
(
(1)“(”进栈
(3)“{”进栈
(
(5)“{”退栈,“]”与“{”不匹配
(2)“{”进栈
(4)“{”退栈,
“}”与“{”匹配
簧镍挑酋痈胰杀鸿湘马棕诡浅殷夜定深鉴辑定碧折披仰操邹枷愤封疽变壁栈和队列的应用举例(全)栈和队列的应用举例(全)
行编辑程序
例.
data stru**cture
↑ ↑
栈底 栈顶
← 输入文本(进栈)
data stru
↑ ↑
栈底 栈顶
e,r,u,t,c,*,*退栈(输错了,删除)
data stru
↑ ↑
栈底 栈顶
← 再输入文本cture
data structure
↑ ↑
栈底 栈顶
酬享依赁悄我塑悔均泻煌苇赊蛙宪笨辆喷罚插独殆剔衷梨丢予节稗冻庆寅栈和队列的应用举例(全)栈和队列的应用举例(全)
表达式求值
例:4 + 2 * 3 – 10 / ( 7 – 5 )
①
③
②
④
⑤
求值规则:
1.先乘除,后加减;
2.先括号内,后括号外;
3.同类运算,从左至右。
约定:
?1----左算符
?2----右算符
?1=#,为开始符
?2=#,为结束符
算符优先关系表
+ - * / ( ) #
+
-
*
/
(
)
#
=
=
文档评论(0)