数据结构实验(3).doc

数据结构实验(3).doc

ID:35982301

大小:45.00 KB

页数:7页

时间:2019-04-29

数据结构实验(3).doc_第1页
数据结构实验(3).doc_第2页
数据结构实验(3).doc_第3页
数据结构实验(3).doc_第4页
数据结构实验(3).doc_第5页
资源描述:

《数据结构实验(3).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机系数据结构实验报告(2)姓名:孟红波学号:6100410179专业班级:卓越101班实验目的:深入了解栈和队列的特性,学会在实际问题下灵活运用它们。问题描述:表达式求值运算是实现程序设计语言的基本问题之一,也是栈应用的一个典型例子。设计并演示用算符优先级对算术表达式的求解过程。实验要求:文法是一个四元1、算法优先级别如下:'+','-','*','/','(',')','#''+''>','>','<','<','<','>','>','-''>','>','<','<','<','>','>','*''>','>','>','>','<','>','>'

2、,'/''>','>','>','>','<','>','>','(''<','<','<','<','<','=','',')''>','>','>','>','','>','>','#''<','<','<','<','<','','='2、以字符序列的形式从终端输入语法正确、不含变量的算术表达式,利用给出的算符优先级关系,实现对算术四则混合运算的求解过程。实验内容和过程:测试数据:1.输入数据:1+(20+4)/(4-1)正确结果:92.输入数据:2*9-6-(20+4)/(4-1)正确结果:4实验步骤:1、根据给出的算符优先级,设置运算符栈和运算数栈;2

3、、在读入表达式的同时,完成运算符和运算数的识别处理,并将运算数的字符序列形式转换成整数形式,并进行相应的运算;3、调试程序,检查输出结果;4、实验小结。算法分析_代码实验代码如下:#include#include#includeusingnamespacestd;#defineMAX1000structsave1{floatn[MAX];inttop;}stack1;structsave2{charn[MAX];inttop;}stack2;//stack1存储数字,stack2存储运算符号boolstacke

4、mpty(save1s)//判断是否为空{if(s.top==-1)return1;elsereturn0;}boolstackempty2(save2s)//判断是否为空{if(s.top==-1)return1;elsereturn0;}voidpush(save1&s,floate)//将e入栈{if(s.top==MAX-1){cout<<"栈已满"<

5、eturn;}s.top++;s.n[s.top]=e;}voidpop(save1&s,float&e)//将栈顶元素出栈,存到e中{if(s.top==-1){cout<<"栈为空"<

6、

7、e=='+')return2;if(e=

8、='*'

9、

10、e=='/')return4;if(e=='^')return5;if(e=='(')return0;if(e==')')return7;return-1;}intout(chare)//e在栈外的优先级别{if(e=='-'

11、

12、e=='+')return1;if(e=='*'

13、

14、e=='/')return3;if(e=='^')return6;if(e=='(')return7;if(e==')')return0;return-1;}voidcount(floata,charope,floatb)//进栈计算并计算结果入栈{floatsum;if(

15、ope=='+')sum=a+b;if(ope=='-')sum=a-b;if(ope=='*')sum=a*b;if(ope=='/')sum=a/b;if(ope=='^')sum=pow(a,b);push(stack1,sum);}intmain(){inti=0,len,j,nofpoint,g=0;//表示输入式子的长度。G表示读入的字符是否是字母变量,数字以及运算符floata,b;//a,b用来存储操作数栈中弹出的操作数,便于代入函数中进行计算charline[MAX],operate,temp[20];cout<<"请输入表达式:"<

16、;cin>>line;l

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。