题目
假设表达式由单字母变量和双目四则运算算符构成.写一算法,将以正确的式子转换为逆波兰式
提问时间:2022-01-17
答案
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;
}
}
/* 返回表达式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的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
- 1已知(4x-3y)2=(3x-2y)2,并且xy≠0,求x/y的值.
- 2动滑轮和定滑轮有什么作用?生活上有那些运用到的(举四个)
- 3最基本的
- 4求60道二次根式计算题(含答案过程)!
- 5周围黑的伸手不见五指是运用了什么样的修辞手法?
- 6春风小学开展学雷锋.学赖宁活动后,为民服务小组由原来的8个增加到26个.问服务小组增加了百分之几?
- 7甲乙两个仓库共化肥160吨,乙仓库的化肥比甲仓库少三分之二.两库各有多少吨?
- 8利用因式分解计算:20112-2012×2010=_.
- 9他们明天想去哪儿?英语怎么译
- 10甲,乙两车同时从相距500千米的两地相向而行.甲车每小时行40千米,乙车每小时行60千米.在相遇的前几个小时,两车相距100千米?{列方程解答}
热门考点
- 1什么气体在其降低温度到-100摄氏度后可变为液态?
- 2如图所示,甲、乙两个滑轮组通过细绳悬挂在天花板上,用滑轮组匀速提升重为600N的物体时,悬挂甲、乙两滑轮组的细绳所受的拉力分别为F甲、F乙,已知每个滑轮重30N,不计绳重及滑轮轴
- 3Which city is the one --has the largest lake in the world,空白处填什么?where吗?that?which?哪个
- 4④月亮落了,半夜以后的苇塘,有些飒飒的风响.《芦花荡》中这一句景物描写有什么作用?
- 5月亮绕地球转一圈是多久
- 6根号10在数轴上怎么画?(最好有图)
- 7for my part,I have not the slightest doubt__he is an honest man.
- 8low-income怎么翻译
- 9长3米宽1.5米高1米容体能容多少吨水
- 10化简比 (1)1/2:4 (2)5/7:12 (3)3:0.5 (5)72:36