假设表达式由单字母变量和双目四则运算算符构成.写一算法,将以正确的式子转换为逆波兰式

假设表达式由单字母变量和双目四则运算算符构成.写一算法,将以正确的式子转换为逆波兰式

题目
假设表达式由单字母变量和双目四则运算算符构成.写一算法,将以正确的式子转换为逆波兰式
答案
char *RPExpression(char *e)
/* 返回表达式e的逆波兰式 */
{
char m='0';
char *b;
Stack s;
static char a[100];
b=a;
InitStack(s);
Push(s,m);
if(*e)
{
while(*e)
{
switch(*e)
{
case '(' :
{
Push(s,*e);
break;
}
case '+' :
case '-' :
{
m=Top(s);
if(m=='+'||m=='-')
{
Pop(s,m);
*b++=m;
}
else if(m=='*'||m=='/')
{
Pop(s,m);
while(m!='('&&m!='0')
{
*b++=m;
Pop(s,m);
}
[u] if(m=='('||m=='0')
Push(s,m); [/u]
}
Push(s,*e);
break;
}
case '*' :
case '/' :
{
m=Top(s);
if(m=='('||m=='+'||m=='-'||m=='0')
{
Push(s,*e);
}
else if(m=='*'||m=='/')
{
Pop(s,m);
*b++=m;
if(m=='('||m=='0')
Push(s,m);
Push(s,*e);
}
break;
}
case ')' :
{
Pop(s,m);
while(m!='(')
{
*b++=m;
Pop(s,m);
}
break;
}
default :
{
*b++=*e;
break;
}
}
e++;
}
Pop(s,m);
while(m!='0')
{
*b++=m;
Pop(s,m);
}
*b='\0';
b=a;
return b;
}
}
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
热门考点

超级试练试题库

© 2017-2019 超级试练试题库,All Rights Reserved.