表达式求值 son bin.doc_第1页
表达式求值 son bin.doc_第2页
表达式求值 son bin.doc_第3页
表达式求值 son bin.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include #include/定义全局变量-int x;/定义栈放操作数和操作符-typedef struct char a100;int b100;int top;stack;/初始化栈-void initstack(stack &s,char )s.top =0;s.a0=#;void initstack(stack &s,int )s.top =0;s.b0=0;/-进栈-void push(stack &s,char y)if (s.top =99)coutstack overflow; elses.top =s.top +1;s.as.top=y;void push(stack &s,int x)if (s.top =99)coutstack overflow;elses.top =s.top +1;s.bs.top=x;/退栈-int shupop(stack &s)if(s.top =-1)coutstack underflow;elsereturn s.b s.top -;char prtpop(stack& s)if(s.top =-1)coutstack underflown;elsereturn s.a s.top -;/运算-int operite(int a,char b,int c)switch (b) case -:return -(a-c); /为什么要加负号? case +:return (a+c); case *:return (a*c); case /:return (c/a);/为什么是c/a而不是a/c?;/把字符变为int-int change( char c)return x=x*10+(int)c-48;/操作符的定位-int priority(char op)switch(op) case +:return 1;case -:return 2;case *:return 3;case /:return 4; case#:return 0;/操作符的比较-bool compare(char a,char b)if(priority(a)priority(b)return 1;return 0;/应用栈顶元素-char gettop(stack &prt,char=e)return prt.a prt.top ;int gettop(stack &shu,int=7)return shu.bshu.top ;/接收表达式-int accept(stack &shu,stack &prt)char c;int j=0;cout请输入表达式,以#结束,按回车确认下一个运算符- if( priority(theta)priority(gettop(prt,y) ) temp=operite(a,theta,shupop(shu);push(shu,temp); /栈顶运算符下一个运算符- else if(priority(theta)priority(gettop(prt,y) int qian=shupop(shu),hou=shupop(shu); temp=operite(qian,prtpop(prt),hou); push(shu,temp);push(shu,a);push(prt,theta); /连减时结合- else if(priority(theta)=2 & priority(theta)=priority(gettop(prt,y) temp=operite(a,+,shupop(shu); push(shu,temp); /连除时结合- else if(priority(theta)=4 & priority(theta)=priority(gettop(prt,y) temp=operite(a,*,shupop(shu); push(shu,temp); /栈顶运算符=下一个运算符(除去“-”和“/”号)- else temp=operite(a,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论