全文预览

北京理工大学数据结构实验报告实验二

上传者:蓝天 |  格式:doc  |  页数:17 |  大小:0KB

文档介绍
-48); c=getchar(); } Push2(OPND,num); }//不是运算符则进栈 else { switch(Precede(GetTop1(OPTR),c)) {//判定OPTR的栈顶运算符1与读入的运算符2间的优先关系 case'<'://新输入的算符c优先级高,c进栈 Push1(OPTR,c);c=getchar();break; case'='://脱括号并接收下一字符 Pop1(OPTR,c);c=getchar();break; case'>'://新输入的算符c优先级低,即栈顶算符优先权高//出栈并将运算结果入栈OPND Pop1(OPTR,theta); Pop2(OPND,b); Pop2(OPND,a); Push2(OPND,Operate(a,theta,b));//进行二元运算athetab break; }//switch }?}//while?returnGetTop2(OPND);}//EvaluateExpression(4)、主程序的代码实现:intmain(){?intx;//定义整形变量x用以接受表达式的值?x=EvaluateExpression();//返回表达式的值?printf("%d\n",x); //输出表达式的值?return0;}四、程序调试分析引用标识符&不符合C语言语法,应使用C++;存操作数和运算符的栈元素类型不一样,所以要定义两种元素类型、两种栈以及分别对应的基本操作;操作数进栈时要注意连续读完所有非运算符的字符并且把字符型转换为整型;pow()函数返回值为double,直接取整会丢失数据,组建时会有警告提示。用户使用说明本程序的运行环境为DOS操作系统,执行文件为:实验二.exe,双击打开文件。进入程序后,输入要计算的表达式,按Enter键结束。屏幕输出上述表达式的结果,按任意键退出程序。

收藏

分享

举报
下载此文档