北京理工大学数据结构及算法设计实验二.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《北京理工大学数据结构及算法设计实验二.doc》由会员分享,可在线阅读,更多相关《北京理工大学数据结构及算法设计实验二.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、. .?数据构造与算法设计?实验报告实验二学院:自动化学院班级: 06111001 学号: 1120210001: 宝竞宇 一、 实验目的掌握栈的建立,输入,删除,出栈等根本操作。应用栈解决实际问题。二、实验内容实现简单计算器的功能,请按照四那么运算加、减、乘、除、幂和括号的优先关系和惯例,编写计算器程序。要求支持运算符:+、-、*、/、%、和=: 从键盘输入一个完整的表达式,以回车作为表达式输入完毕的标志; 输入表达式中的数值均为大于等于零的整数,如果中间计算过程中出现小数也只取整进展计算。例如,输入:4+2*5=输出:14 输入:(4+2)*(2-10)=输出:-48三、程序设计1、概要设
2、计 抽象数据类型定义:两个栈构造,分别用来储存数据和计算符号 宏定义:函数“成功,“失败的返回值 在主程序程序中先依次输入各表达式,存入相应各栈,然后 ,调用“判断函数来判断计算符的优先次序,然后再利用计算函数来计算,表达式值。其中还有,取栈顶元素函数,存入栈函数。2、详细设计数据类型实现:struct tchar dat200;int top;prt;入栈函数:存入数组,栈顶指针上移void pushd(long int a)prd.datprd.top+=a;出栈:取出对应值,栈顶指针下移long int popd( )return prd.dat-prd.top;比拟优先级:建立数组,比
3、拟返回大于小于号。计算函数:以字符型输入,运算符号,用switch来分支计算判断,返回计算数值long int operation ( long int x, long int y, char a) switch(a)case +: return x+y;case -: return x-y;case *: return x*y;case /: if ( y ) return x/y; else printf(Divide 0.n); return 0; case %: return (long int) fmod(x,y);case : if (y=0 ) return (long int)
4、 pow(x,y); else return (0);default: printf(Error No. 3n); return 0;主程序:在主程序内,以字符串的形式输入表达式,然后分别调用函数存入各相应栈,然后用数组判断,比拟运算符的优先顺序。依次输入,当要输入的算符优先级比已经在栈顶的优先级低,那么取出运算。while ( *p!=# | prt.datprt.top-1!=# )以#号作为完毕的标志。switch ( refusal(prt.datprt.top-1, *p ) )用来比拟优先级主函数流程图:开 始循环模块输入表达式各项存入模块存入判断模块是否计算输出栈顶值结 束四、程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京理工大学 数据结构 算法 设计 实验
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内