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

资源简介


用c++中的堆栈实现中缀表达式变后缀表达式

资源截图

代码片段和文件信息

#include
#include
using namespace std;

char stack[50];//定义顺序栈,其中第一个元素表示栈为空;

int top=0;//栈顶指针,为0表示栈为空;

int level(char op)//判断运算符级别函数;其中* /的级别为2,+ -的级别为1^为3,默认为0;

{
int level;

switch(op)
{
case ‘+‘:

case ‘-‘:level=1;break;

case ‘*‘:

case ‘/‘:level=2;break;

case ‘^‘:level=3;break;

default: level=0;break;
}

return level;

}

bool isOperator(char op)//判断输入串中的字符是不是操作符,如果是返回true

{
if(op==‘+‘||op==‘-‘||op==‘*‘||op==‘/‘||op==‘^‘)

return true;

else 

return false;
}

string convert(string s)//将一个中缀串转换为后缀串

{

    string output=““;//输出串

    for(int i=0;i<=s.length();i++)

       {

              if((s[i]>=48 && s[i]<=57)||(s[i]>=‘a‘ && s[i]<=‘z‘))

                     output=output+s[i];//假如是操作数,把它添加到输出串中。

              if(s[i]==‘(‘)

              {

                     top++;

                     stack[top]=s[i];

              }

              while(isOperator(s[i]))

评论

共有 条评论