第一范文网 - 专业文章范例文档资料分享平台

四川大学《数据结构与算法分析》课程设计报告-带括号的算术表达式

来源:用户分享 时间:2025/7/31 8:58:19 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

[键入文字] [键入文字] [键入文字]

过堆栈方法将这个中缀表达式转化为后缀表达式,然后将后缀表达式求值。

有 错 输出“表达 式有错” 函数清单: 开始程序 输入一个检查表达式没有错误 转化为后缀表达式 计算求值 输出结果 是否否 退出-3- 程序是 [键入文字] [键入文字] [键入文字]

transform()——用于将中缀表达式转换为后缀表达式 calculate()——将后缀表达式进行求值 examine()——检查输入的表达式是否有错误 main()——主程序。

五:源程序清单:

#include #include #include #include using namespace std;

string transform(string str)//转换为后缀表达式 {

stack ope; int i;

string exp=\;

for(i=0;i

if(str[i]=='.'||isdigit(str[i])) {

-4-

[键入文字] [键入文字] [键入文字]

}

exp+=str[i];

else if(str[i]=='+'||str[i]=='-') {

int j=i-1;

if(isdigit(str[j])) {

exp+=\;//每个数字的后面都加一个空格加以区分

if(ope.empty()||ope.top()=='(') { } else {

while(!ope.empty()&&ope.top()!='(') { }

ope.push(str[i]);

exp+=ope.top(); ope.pop(); ope.push(str[i]);

-5-

[键入文字] [键入文字] [键入文字]

}

} } else { { } else { } }

while(!ope.empty()&&ope.top()!='(') { }

ope.push(str[i]);

exp+=ope.top(); ope.pop(); ope.push(str[i]);

if(ope.empty()||ope.top()=='(')

else if(str[i]=='*'||str[i]=='/'||str[i]=='%')

-6-

四川大学《数据结构与算法分析》课程设计报告-带括号的算术表达式.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2a0oy18z7k7f1wl0k4bu3bj0w6iip0013o6_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top