• 大小: 2KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: C/C++
  • 标签:

资源简介

输入一个中缀表达式,将其转换为等价的后缀表达式后输出并计算结果。

资源截图

代码片段和文件信息

/*
输入一个中缀表达式,将其转换为等价的后缀表达式后输出
并计算结果。 
*/ 
#include 
#include 
#include 
using namespace std;
bool chuyes;
char s[110]t[300];
stack  a;
stack  b;
bool shu(char x)
{
     return x>=‘0‘&&x<=‘9‘;
}
bool sign(char x)
{
     return x==‘+‘||x==‘-‘||x==‘*‘||x==‘/‘;
}
bool budi(char xchar y)
{
       if ((x==‘+‘||x==‘-‘)&&(y==‘*‘||y==‘/‘)) return false;
       return true;
}
int count()
{
       int intt1t2;
       for (;!a.empty();a.pop());
       memset(t0sizeof(t));
       for (i=nt=0;s[i]!=‘\0‘;i++)
           if (shu(s[i]))
           {
              for (;s[i]!=‘\0‘&&shu(s[i]);i++) t[nt++]=s[i];
              t[nt++]=‘‘;
              i--;
           }
           else if (sign(s[i]))
                {
                   for (;!a.empty()&&a.top()!=‘(‘&&budi(a.top()s[i]);a.pop()) t[nt++]=a.top();
                   a.push(s[i]);
                }
           else if (s[i]==‘(‘) a.push(s[i]);
           else if (s[i]==‘)‘)
                {  for (;a.top()!=‘(‘;a.pop()) t[nt++]=a.top();
                   a.pop();
                }
       fo

评论

共有 条评论

相关资源