算术表达式求值03325

算术表达式求值03325

ID:17536008

大小:32.50 KB

页数:9页

时间:2018-09-02

算术表达式求值03325_第1页
算术表达式求值03325_第2页
算术表达式求值03325_第3页
算术表达式求值03325_第4页
算术表达式求值03325_第5页
资源描述:

《算术表达式求值03325》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、算术表达式求值03325//*************************************************************************************************************************//040640208霍瑛//算数表达式求解//实现正整数的+-*/运算,以及验证表达式输入正误的功能//2007-1-2//*************************************************************************************

2、************************************#include#include#include#include#defineSTACK_INIT_SIZE100;//存储空间初始分配量#defineSTACKINCREMENT10;//存储空间分配增量//*****************************************************************************************************

3、********************//类模版定义templateclassSqStack{private:T*base;T*top;intstacksize;public:SqStack();//建立一个新栈Push(Te);//压入一个新数据GetTop();//取得最上面的数据Pop();//弹出最上面的数据};templateSqStack::SqStack(){base=(T*)malloc(100*sizeof(T));if(!base)exit(0);//分配内存失败top=base;stacksize=

4、100;}templateintSqStack::GetTop(){Te;if(top==base)return0;//栈空的情况e=*(top-1);returne;}templateintSqStack::Pop(){Te;if(top==base)return0;//栈空的情况e=*--top;returne;}templateintSqStack::Push(Te){if(top-base>=stacksize)//栈满的情况{base=(T*)realloc(base,(stacksi

5、ze+10)*sizeof(T));//追加空间if(!base)exit(0);//空间分配失败top=base+stacksize;stacksize+=STACKINCREMENT;//每次添加STACKINCREMENT的空间}*top++=e;return1;}//************************************************************************************************************************//基本函数定义intIsnum(chare)//

6、判断是否是数字{if(e>='0'&&e<='9')return1;elsereturn0;}intPrimary(charx)//返回符号对应的数值{inte=-1;switch(x){case'+':e=0;break;case'-':e=1;break;case'*':e=2;break;case'/':e=3;break;case'(':e=4;break;case')':e=5;break;case'#':e=6;break;}if(e==-1){cout<<"输入表达式含不规范字符!"<

7、ede(charx,chary)//符号优先级定义{intnum[7][7]={{1,1,-1,-1,-1,1,1},{1,1,-1,-1,-1,1,1},{1,1,1,1,-1,1,1},{1,1,1,1,-1,1,1},{-1,-1,-1,-1,-1,0,2},{1,1,1,1,2,1,1},{-1,-1,-1,-1,-1,2,0}};inta,b;a=Primary(x);b=Primary(y);returnnum[a][b];}intOperate(inta,charthera,intb){if(thera=='+')return(a+b);if(t

8、hera=='-')return(a-

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

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

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