- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 特殊线性表—栈、队列
2.1 “后缀表达式的求值”案例 【案例说明】 设计一个算法,使用顺序栈计算一个后缀表达式的值。程序运行结果如图 2.1 所示。 【案例目的】 (1) 熟悉栈的特点,注意栈与线性表的异同。 (2) 掌握顺序栈和链栈上实现的进栈、退栈等基本算法。 (3) 熟悉栈的“上溢”和“下溢”的概念及其判别条件。 (4) 能够利用栈设计算法、解决简单的应用问题。 【技术要点】 在控制CPU进行后缀表达式求值时,需要借助栈技术来实现。控制CPU进行后缀表达式求值的基本算法是: 1)让CPU从头到尾扫描后缀表达式中的每一个字符, (1)若遇到的是空格,其为分隔符,不需要任何处理; (2)若遇到的是运算符,则表明它的两个操作数已经在栈中,从栈中取出两个操作数进行相应的运算,并将运算结果压入栈中; (3)若遇到的是数字,其必为操作数的最高位数字字符,这时,需要将该字符及其后面连续的数字字符进行处理,生成一个操作数,并将该操作数压入栈中。 2)如此扫描下去,直到整个表达式结束,这时栈顶元素的值就是整个表达式的计算结果。 【代码及分析】 void Calculate_exp(char exp[ ]) { SqStack S; char ch,num[10]; int i=0,x,x1,x2,k; Init_SqStack(S); while( exp[i] ) { switch( exp[i] ) {/*弹出栈顶两元素作加法运算*/ case +: Pop_SqStack(S,x2); Pop_SqStack(S,x1); x=x1+x2; /*数据入栈*/ Push_SqStack(S,x); i++;break; /*弹出栈顶两元素作除法运算*/ case /: Pop_SqStack(S,x2); Pop_SqStack(S,x1); x=x1/x2; Push_SqStack(S,x); /*数据入栈*/ i++; break; case : /*跳过空格*/ i++; break; default: /*遇到运算数,将其转化为整型数据*/ memset(num,0,10); k=0; while( isdigit(exp[i]) ) /* 23 5×6 8 4/-7×+# */ { num[k++]=exp[i] ; i++;} if( strlen(num)!=0 ) {x=atoi(num);Push_SqStack(S,x);} } } /*栈中只有一个数据,则它就是运算结果*/ if( !Empty_SqStack(S) ) { Pop_SqStack(S,x); if(Empty_SqStack(S)) printf(the result is: %d,x); else /*栈中有多个数据,则出错*/ { printf(expression error!\n); return; } } else /*栈空,则出错*/ { printf(stack is empty!); return;} } 2.1.2 应用扩展 1.数制转换 十进制数 N 和其他 d(d 为 2 、8或16)进制数的转换是计算机实现计算的基本问题,其解决方法很多,其中一个比较简单的方法是“辗转相除法”。 例如,设 N=1256,d=8,其转换过程见表 2-1。 表 2-1 十进制数与八进制数的转换 算法描述: 1)控制CPU将计算过程中得到的 d 进制数的各位顺序进栈,当 N≥0 时,重复执行如下操作。 (1) 若 N≠0,则将 N%d 压入栈 s 中,执行第 2 步;若 N=0,则入计算余数和入栈结束;
您可能关注的文档
最近下载
- 2022小学语文新课标测试题库及答案.pdf VIP
- 初中生积极心理品质培育策略与实践研究.docx VIP
- 投标服务承诺书(20篇).docx VIP
- 七年级英语第一次月考卷(考试版A4)【测试范围:沪教版五四学制2024 Starter~Unit 1】(上海专用).docx VIP
- 李白按年龄顺序写的诗.docx VIP
- 2025年四川省高考化学试卷真题(含答案解析).docx
- 高频精选:京东快递员ai面试题及答案.doc VIP
- 高频精选:京东快递员ai面试题及答案大全.doc VIP
- 吉林省中药软片炮制规范.pptx VIP
- 名著阅读《湘行散记》七年级语文上册部编版(共9页).docx VIP
文档评论(0)