问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

后缀表达式转换成中缀表达式

发布网友 发布时间:2022-04-25 22:42

我来回答

1个回答

热心网友 时间:2022-06-18 07:41

#include <iostream>
#include <stack>
using namespace std;

bool isNum(char c)
{
if(c>='0'&&c<='9') return true;
else return false;
}
int priority(char op)
{
switch(op)
{
case'=':return(1);
case')':return(2);
case'+':
case'-':return(3);
case'*':
case'/':return(4);
case'(':return(5);
default:return(0);
}
}
void infix_exp_value(char *infixexp,char *postfixexp)
{
stack<char> s;
char cur_char,topElement;
s.push('#');
cur_char = *infixexp;
while(s.top()!='#' || cur_char!='#')//当栈空 且 前缀表达式结束时 停止循环
{
if (isNum(cur_char))
{
*postfixexp = cur_char;
postfixexp++;
cur_char = *(++infixexp);
}
else
{
if (s.top()=='('||priority(s.top()) < priority(cur_char))
{
s.push(cur_char);
cur_char=*(++infixexp);
}
else
{
topElement = s.top();
s.pop();
*postfixexp=topElement;
postfixexp++;
}
}
}
*postfixexp='#';
*(++postfixexp)='\0';
}

void main()
{
char pre[40],post[40];
cin>>pre; //表达式需以#收尾
infix_exp_value(pre,post);
cout<<post;
}

这个算法太过简易,没办法识别非法表达式,没办法区分两个相邻的数字,不支持表达式中的空格输入,不支持浮点数
尤其是输入表达式必须使用#结尾

这个是完全按你的要求修改的,我还用面向对象另写了一个程序,能完成上述没有的功能,并能进行求值,你要想要可以Hi我
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
橙子冷藏能保存多久 橙子会过期吗 新鲜橙子如何保存更久 橙子保鲜剂对人体有害吗 粒上皇开口熟栗120g*5袋(共600g)-详细介绍 三皇王板栗介绍 品牌榜:2024年板栗十大品牌排行榜 投票结果公布【新】 为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 后缀表达式如何转成中缀表达式?是后转中!! 电脑微信为什么图片发不出去 售价12.99-13.99万元,马自达3 昂克赛拉两款新车型正式上市 word表格下方打字顶头怎么弄??急急急 C语言后缀表达式转换成中缀表达式 压燃发动机 昂克赛拉上市 售18.99万元 动力超思域 如何把零元购里语音验证码改成短信验证码? 跪求。。。安全教育培训之后的感想? 心里觉得很烦 工作上的事情 总是会遇到那种各种各样的性格 工作上有些人说话很不须 语音验证码 呼叫转移,可饿了吗美团外卖天天打车 2018款昂克赛拉什么时候上市 我在幼儿园签了一年的合同,但我干了五天就不想干了,会付违约金吗,可以辞职吗? 昂克赛拉2017款怎么样? 对付烦人的人怎么办 马自达昂克赛拉什么时候新款上市?? word2003中怎样在表格外面打字啊?打在表格下面·· 如果我们想要在word中间或者是最下方输入文字或者图片表格,怎么操作呢 手机主板烧坏还能不能开机 我打开美团了,想要短信验证码,可是打开短信了,美团那就不能用了 我对现在的工作真的很烦!怎么办呀? 马自达3昂克赛拉百年纪念版上市,国内售价15.99万元 数据结构,如何把一个后缀表达式换为中缀表达式,比如a+b*c+(d*e+f)*g 一般的会计报表怎么做 端腔怎么练。。?想伪御姐音和正太音。。。听说御姐音要练端腔。。。求... 求前缀,后缀表达式转中缀表达式 c语言数据结构栈,后缀表达式转中缀表达式,代码不能执行 C++后缀表达式转中缀表达式? 想自学心理学,步骤是怎样的? 怎么做好公司的财务三表? 中缀表达式转后缀表达式怎么转? 后缀式转中缀式 幼儿园签了合同中途辞职可以吗 售12.99万起,马自达3昂克赛拉两款新车型上市 怎么自学心理学 C语言问题 关于栈的应用,数学运算后缀表达式转换成中缀表达式 为什么想学习虚伪的我也会厌烦? 马自达昂克赛拉还是雷凌好 在幼儿园里上班签合同的,如果合同没到期想要辞职的话可以辞职吗? 中缀表达式转后缀表达式是什么? 会计报表编制需要注意哪些方面