利用二叉树以及栈对算术表达式实现四则运算等计算功能代码.docVIP

利用二叉树以及栈对算术表达式实现四则运算等计算功能代码.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用二叉树以及栈对算术表达式实现四则运算等计算功能代码

#include iostream #include string #include sstream #include stack #include cmath using namespace std; bool IsOperator(string mystring) //判断字符串是否是运算符 { if(mystring == -||mystring == +||mystring == *||mystring == /||mystring == ^||mystring == %) return true; else return false; } bool IsOperator(char ops) //判断一个字符是否是运算符 { if(ops == +||ops== -||ops== *||ops== /||ops== ^||ops== %||ops==(||ops==)) return true; else return false; } bool IsOperand(char ch) //判断是否是数字 { if (((ch=0)(ch=9))||(ch==.)) return true; else return false; } bool isok(string exp) //判断输入是否正确 { char check; int error=0,lb=0,rb=0,numofoperand=0,numofoperator=0; for(int m=0;mexp.size();m++) { check=exp[m]; if(IsOperand(check)) { if(check==.) { if(!(exp[m-1]=0exp[m-1]=9)(exp[m+1]=0exp[m+1]=9)) { error++; cout浮点型数据输入有误!!!endl; } } numofoperand++; } else if(IsOperator(check)) { if(check==)) { rb++; if(rblb) { error++; cout右括号不可能大于左括号!!!endl; } if(IsOperator(exp[m+1])(exp[m+1]==+||exp[m+1]==-||exp[m+1]==*||exp[m+1]==/||exp[m+1]==^||exp[m+1]==)||exp[m+1]==%)) { numofoperator++; m++; if(exp[m]==)) rb++; } else if(IsOperator(exp[m+1])||IsOperand(exp[m+1])) { error++; cout右括号后不可能直接跟数据或左括号!!!endl; } } else if(check==() { lb++; if(IsOperator(exp[m+1])exp[m+1]==() { m++; lb++; } else if(IsOperator(exp[m+1])) { error++; cout左括号后运算符只能跟左括号!!!endl; } } else { numofoperator++; if(IsOperator(exp[m+1])exp[m+1]==() { m++; lb++; } else if(IsOperator(exp[m+1])) { error++; cout非括号的运算符不能直接接非括号运算符!!!endl; } } } else { error++; coutcheck为非法字符!!!endl; } } if((error==0)(lb==rb)(numofoperand!=0)(numofoperator!=0)) return true; else return false; } bool addition(char OperatorA,char OperatorB) //A=B返回TRUE. {

文档评论(0)

pangzilva + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档