- 53
- 0
- 约6.96千字
- 约 6页
- 2022-10-17 发布于北京
- 举报
实验
数学系 2012 级 日期2013.04.06
No. P 评分
实验题目:表达式求值
实验目的: 使用栈和队列实现算术表达式的求值,深入了解栈和队列的特性,
以便在解决实际问题中灵活运用它们,同时加深对这两种结构的理解和认识。
实验分析:人们在书写表达式时通常将运算符放在两个操作数中间,为中缀表达
式,如:8+5* (7-3 )。但这种表示形式不适合计算机处理。将运算符放在两个操
作数后面的表达式为后缀表达式,如把前面的中缀表达式 8+5* (7-3 )写成后缀
式为 8573-*+。要计算后缀表达式,可从左到右进行扫描,查找其中的运算符。
扫描到第一个运算符 “- ”,执行“7-3 ”,并用运算结果4 代替原表达式中的 “73- ”,
表达式变成 “854*+ ”;继续扫描,到运算符“* ”,执行“5*4 ”,并用运算结果
20 代替 “54* ”,表达式变成“820+ ”;继续扫描,到运算符“+ ”,执行“8+ 20 ”,
得运算结果 28;其后扫描不到 的运算符,于是运算结束,得最终结果为28。
这种计算方法简单方便,更适合计算机的处理方式。因此,要用计算机来处理算
术表达式计算问题,首先需要将中缀表达式转化为后缀表达式。
算法分析:
(1)中缀表达式到后缀表达式的转换
新扫描到运算符的优先级必须与前一个运算符的优先级做比较,如果新的运算符
优先级高,就要保存至扫描到第二个操作数并将它输出后才能将该运算符输出。
因此转化中须保存两个运算符,后保存的运算符先输出,在计算机中需要用到“后进
先出”的栈。如果表达式中含小括号,则货号 产生了独立的子表达式,当扫
描到左括号式,需要将其压入栈底使其在栈中产生一个伪栈底,当扫描到右括号
时,将从栈顶到这个伪栈底间的运算符全部弹出,将伪栈底删除。
综上所述,转换表达式的 如下:
顺序扫描中缀表达式,读到数字时直接将其送至输出队列中;读到运算符时,将
栈中所有优先级不低于该运算符的运算符弹出,送至输出队列中,再将当前运算
符入栈;读到左括号时左括号入栈;读到右括号时将靠近栈顶的第一个左括号上
面的运算符全部依次弹出,送至输出队列中,再删除栈中的左括号。
求运算符优先级函数:
Priority(char
op){ switch(op){
case(:
case#:return(0);
case-:
case+:return(1);
case*:
case/:return(2);
}
}
表达式转换函数:
void CT tExp(Se ueue
*Q){ SeqStack OS;
char c,t;
SeqStack *S;
S=OS;InitStack(S);
Push(S,#);
do{ c=getchar(
);
switch(c){
case :break;
case0:
case1:
case2:
case3:
case4:
case5:
case6:
case7:
case8:
case9:
EnQueue(Q,c);break;
case(:Push(S,c);break;
case):
case#:
do{
t=Pop(S);
if(t!=(t!=#) EnQueue(Q,t);
}while(t!=
您可能关注的文档
- 晶体化学拓展5标本辨.pdf
- 2011年外国美术史复习题上.pdf
- 遍净80多菌灵可湿性粉剂msds.pdf
- 小学第六册语文期中测试卷.pdf
- 卫生系统面试强化题型.pdf
- 聚焦中考2016英语考点跟踪突破24代词和连词.pdf
- 三綦项目3a分部2014年安全文明施工投入计划报表.pdf
- 介绍群力简介.pdf
- 财政112餐盘回收爱心传递.pdf
- 共享船用产品录2015list of approved marine网站.pdf
- (正式版)DB51∕T 1867-2014 《袋栽黑木耳生产技术规程》.docx
- (正式版)DB51∕T 2413-2023 《油橄榄密植丰产栽培技术规程》.docx
- (正式版)DB51∕T 2436-2017 《川菜东坡一品肉烹饪工艺技术规范》.docx
- (正式版)DB51∕T 2396-2017 《农村电子商务服务站(点)服务与管理规范》.docx
- (正式版)DB51∕T 2419-2017 《桢楠扦插育苗技术规程》.docx
- CN105145773B 一种无花果曲奇饼干及其制作方法 (江苏农林职业技术学院).docx
- CN105203825A 微测量电极的制作方法和热电势的测量方法及相关装置 (国家纳米科学中心).docx
- CN105137533B 一种啁啾光纤光栅及其制作方法 (南京航空航天大学).docx
- (正式版)DB51∕T 2453-2018 《巴山新居公共管理指南》.docx
- (正式版)DB51∕T 1892-2014 《川西北地区沙化土地治理技术规程》.docx
原创力文档

文档评论(0)