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

loading 分享 2026-8-21 下载文档

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

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

有 错 输出“表达 式有错” 函数清单: 开始程序 输入一个检查表达式没有错误 转化为后缀表达式 计算求值 输出结果 是否否 退出-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文档下载到电脑
搜索更多关于: 四川大学《数据结构与算法分析》课程设计报告-带括号的算术表达 的文档
相关推荐
相关阅读