人人终身学习知识网~是各类综合知识资源信息分享,提升综合素质与提高知识技能的终身学习网络平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

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

[复制链接]

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

答案:↓↓↓

网友采纳  char*RPExpression(char*e)  /*返回表达式e的逆波兰式*/  {  charm='0';  char*b;  Stacks;  staticchara[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;  }  elseif(m=='*'||m=='/')  {  Pop(s,m);  while(m!='('&&m!='0')  {  *b++=m;  Pop(s,m);  }  if(m=='('||m=='0')  Push(s,m);  }  Push(s,*e);  break;  }  case'*':  case'/':  {  m=Top(s);  if(m=='('||m=='+'||m=='-'||m=='0')  {  Push(s,*e);  }  elseif(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='';  b=a;  returnb;  }  }
回复

使用道具 举报

小黑屋/人人终身学习知识网~是各类综合知识资源信息分享,提升综合素质与提高知识技能的终身学习网络平台

Powered by 5wangxiao

© 2007-2021 5wangxiao.Com Inc.

快速回复 返回顶部 返回列表