ds3.2陆小马功钟浩.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
§3.2 栈的应用举例 栈的应用 例1:数制转换 “除基取余法” 除基数取余数,逆序排列。 (1348)10 = (2504)8 简单的数制转换算法 //将正整数n转换为r进制数输出 void conversion ( int n, int r ) { InitStack(S); do { Push(S, n%r); n = n/r; } while ( n!=0 ); while ( ! StackEmpty(S) ) { Pop(S,e); print(e); } } 例2:括号匹配 括号匹配问题 括号匹配 {[( )]},(( ){ }),( ) 括号不匹配 (( ),( )],([ )] 检查括号匹配的算法 设一栈 遇到左括号则入栈, 遇到右括号时,若栈空,则不匹配(右括号太多),否则,如果栈顶元素与该右括号匹配,则出栈,否则不匹配(括号不配对)。 输入结束后,若栈为空,则匹配,否则不匹配(左括号太多)。 检查括号匹配的算法 //检查括号匹配的算法 bool match ( ) { InistStack(S); read(c); while ( c!=EOF ) { switch(c) { case (‘, [‘, {: Push(S,c); break; case )‘, ]‘, }: if(StackEmpty(S)) return false; Pop(S,e); if(c==) e!=() return false; if(c==] e!=[) return false; if(c==} e!={) return false; break; } read(c); //读下一个字符 } if( StackEmpty(S) ) return true; else return false; } 例3:计算后缀表达式 后缀表达式 中缀表达式 a @ b 后缀表达式 a b @ 分析 中缀表达式1+2*3+(4*5+6)*7 根据运算符的优先级进行计算 后缀表达式123*+45*6+7*+ 按照运算符的顺序计算,不需要括号 算法 设一栈存放操作数 遇到运算符,则取出栈顶的两个数进行运算,将结果入栈 最终结果保存在栈中。 计算后缀表达式的算法 //计算后缀表达式 int Postfix ( ) { InitStack(S); read(c); while ( c!== ) { if( isdigit(c) ) { read(v); Push(S,v); } else { Pop(S,b); Pop(S,a); Push(S, Operate(a,c,b)); } read(c); } Pop(S,result); return result; } 例4:计算中缀表达式 分别设操作数栈和运算符栈。 若读入操作数则进栈。 如果读入运算符,则与栈顶运算符比较,若优先级高于栈顶运算符,则入栈;否则,不断弹出栈顶运算符和两个操作数并执行计算,直到栈顶运算符优先级更低。 P53 例5:中缀表达式转化为后缀表达式 分析 中缀表达式1+2*3+(4*5+6)*7 后缀表达式123*+45*6+7*+ 算法 读到操作数时立即输出 操作符存放在栈中,遇到操作符时,从栈中弹出操作符直到遇到优先级更低的运算符为止。 * * 2 0 2 5 2 21 0 21 168 4 168 1348 N mod 8 N / 8 N

文档评论(0)

陆小马公主号 + 关注
实名认证
文档贡献者

陆小马 功钟浩 分享资源

1亿VIP精品文档

相关文档