中缀转后缀表达式并求值c 程序

中缀转后缀表达式并求值c 程序

ID:11575689

大小:33.00 KB

页数:6页

时间:2018-07-12

中缀转后缀表达式并求值c  程序_第1页
中缀转后缀表达式并求值c  程序_第2页
中缀转后缀表达式并求值c  程序_第3页
中缀转后缀表达式并求值c  程序_第4页
中缀转后缀表达式并求值c  程序_第5页
资源描述:

《中缀转后缀表达式并求值c 程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#includeusingnamespacestd;typedefdoubleElemType;#includestructStack{ElemType*stack;inttop;intMaxSize;};voidInitStack(Stack&S)//初始化栈S为空{S.MaxSize=20;S.stack=newElemType[S.MaxSize];if(!S.stack){cerr<<"动态存储分配失败!"<

2、.top=-1;}voidPush(Stack&S,ElemTypeitem)//元素item进栈,即插入到栈顶{if(S.top==S.MaxSize-1){intk=sizeof(ElemType);S.stack=(ElemType*)realloc(S.stack,2*S.MaxSize*k);S.MaxSize=2*S.MaxSize;}S.top++;S.stack[S.top]=item;}ElemTypePop(Stack&S)//删除栈顶元素并返回{if(S.top==-1){cerr<<"Stac

3、kisempty!"<

4、放动态存储空间{if(S.stack){delete[]S.stack;S.stack=NULL;}S.top=-1;S.MaxSize=0;}doubleCompute(char*str)//后缀表达式求值的算法{StackS;InitStack(S);doublex,y;inti=0;while(str[i]){if(str[i]==''){i++;continue;}switch(str[i]){case'+':intm,n;m=Pop(S);n=Pop(S);x=m+n;//cout<

5、"<=48&&str[i]<=57){x=x*10+str[i]-48;i++;}i

6、f(str[i]=='.'){i++;y=0;doublej=10.0;while(str[i]>=48&&str[i]<=57){y=y+(str[i]-48)/j;i++;j*=10;}x+=y;}}Push(S,x);//cout<<"a"<

7、or!"<

8、[i];while(ch!=''){if(ch=='')ch=s1[++i];elseif(ch=='('){Push(R,ch);ch=s1[++i];}elseif(ch==')'){while(Peek(R)!='(')s2[j++]=Pop(R);Pop(R);ch=s1[++i];}elseif(ch=='+'

9、

10、ch=='-'

11、

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

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

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