将中缀表达式转换为后缀表达式并计算.doc

将中缀表达式转换为后缀表达式并计算.doc

ID:55915427

大小:48.00 KB

页数:13页

时间:2020-06-14

将中缀表达式转换为后缀表达式并计算.doc_第1页
将中缀表达式转换为后缀表达式并计算.doc_第2页
将中缀表达式转换为后缀表达式并计算.doc_第3页
将中缀表达式转换为后缀表达式并计算.doc_第4页
将中缀表达式转换为后缀表达式并计算.doc_第5页
资源描述:

《将中缀表达式转换为后缀表达式并计算.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《数据结构》实验报告◎实验题目:使用键盘输入表达式,计算表达式的值并输出;将表达式转化成后缀表达式输出,利用后缀表达式求表达式的值并输出。◎实验目的:使用栈的操作编写关于数据结构的程序。◎实验容:写出程序并上机调试、通过。一、需求分析1、演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“请输入表达式”时输入中缀表达式。然后计算机终端输出转换后的后缀表达式及计算后的结果。2、程序执行的命令包括:(1)构造链栈;(2)输入数据;(3)判断输入的表达式是否为非法表达式;(4)将中缀表达式转换为后缀表达式;(5)计算表达式的值;(6)输出。

2、(7)结束4、本程序能将中缀表达式转换为后缀表达式,并且能计算表达式的值。5、输入及输出示例:例1:请输入表达式6+3*(6+5)后缀表达式:6365+*+计算结果为:39Pressanykeytocontinue例2:请输入表达式6-3*(7+1ERROR:表达式错误Pressanykeytocontinue二概要设计1.基本操作(1)、structnode操作结果:创建结构体(2)、intSearchexpression(charstring1[])初始条件:表达式string1已经存在。操作结果:判断表达式是否非法(3)、structn

3、ode*Initialization()操作结果:创建栈链。(4)、structnode*assort(structnode*s)初始条件:string1、string2已存在。操作结果:将中缀表达式转换为后缀表达式并存在string2中。(5)、structnode*calcolate(structnode*s)操作结果:求出表达式的值2、模块调用图主程序模块创建结构体判断表达式是否非法将中缀表达式转换为后缀表达式表达式求值三详细设计1、每个模块:(1)定义结构体structnode{chardata;intnum;structnode*n

4、ext;};(2)判断表达式是否非法intSearchexpression(charstring1[]){inti1,b1,b2;intm;m=strlen(string1);if(string1[0]<'0'

5、

6、string1[0]>'9'){printf("ERROR:表达式缺操作数!");return(WRONG);}for(i1=0;i1<=m;i1++){if(string1[i1]=='(')b1++;elseif(string1[i1]==')')b2++;}if(b1!=b2){printf("ERROR:缺少括号")

7、;return(WRONG);}for(i1=0;i1

8、

9、string1[i1+1]=='-'

10、

11、string1[i1+1]=='*'

12、

13、string1[i1+1]=='

14、/')){printf("ERROR:表达式缺操作数!");return(WRONG);}elseif(string1[i1]=='-'&&(string1[i1+1]=='+'

15、

16、string1[i1+1]=='-'

17、

18、string1[i1+1]=='*'

19、

20、string1[i1+1]=='/')){printf("ERROR:表达式缺操作数!");return(WRONG);}elseif(string1[i1]=='*'&&(string1[i1+1]=='+'

21、

22、string1[i1+1]=='-'

23、

24、string1[i1+1

25、]=='*'

26、

27、string1[i1+1]=='/')){printf("ERROR:表达式缺操作数!");return(WRONG);}elseif(string1[i1]=='/'&&(string1[i1+1]=='+'

28、

29、string1[i1+1]=='-'

30、

31、string1[i1+1]=='*'

32、

33、string1[i1+1]=='/')){printf("ERROR:表达式缺操作数!");return(WRONG);}return(RIGHT);}(3)、将中缀表达式转换为后缀表达式structnode*assort(str

34、uctnode*s)//输入字符串{structnode*p,*top;inti;top=s;intm;chara;m=strlen(string1);for(i=

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

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

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