Responsive image

问题 D: 利用顺序栈将中缀表达式(56-20)/(4+2)转换为后缀表达式

问题 D: 利用顺序栈将中缀表达式(56-20)/(4+2)转换为后缀表达式

时间限制: 1 Sec  内存限制: 128 MB
提交: 0  解决: 0
[提交][状态][讨论版][命题人:]

题目描述

请你利用顺序栈将中缀表达式(56-20)/(4+2)转换为后缀表达式。 
组合提交代码(仅支持C++)
#include<iostream> 
#include <stdio.h>
#include <malloc.h>
#include <string.h>
using namespace std;
#define MaxSize 100
typedef struct 
{ char data[MaxSize]; //存放运算符
int top; //栈顶指针
} SqStack;
void InitStack(SqStack *&s) //初始化栈
{ s=(SqStack *)malloc(sizeof(SqStack));
s->top=-1;
}
void DestroyStack(SqStack *&s) //销毁栈
{
free(s);
}
bool StackEmpty(SqStack *s) //判断栈是否为空
{
return(s->top==-1);
}
bool Push(SqStack *&s,char e) //进栈元素e
{ if (s->top==MaxSize-1)
return false;
s->top++;
s->data[s->top]=e;
return true;
}
bool Pop(SqStack *&s,char &e) //出栈元素e
{ if (s->top==-1)
return false;
e=s->data[s->top];
s->top--;
return true;
}
bool GetTop(SqStack *s,char &e) //取栈顶元素e
{ if (s->top==-1)
return false;
e=s->data[s->top];
return true;
}
void trans(char *exp,char postexp[]) //将算术表达式exp转换成后缀表达式postexp
{
/**************begin************/




    /**************end************/
}

int main()
{
char exp[]="(56-20)/(4+2)";
char postexp[MaxSize];
trans(exp,postexp);
printf("中缀表达式:%s\n",exp);
printf("后缀表达式:%s\n",postexp);
return 1;
}

输入描述

注意分析主程序中给出的输入输出要求

输出描述

注意分析主程序中给出的输入输出要求

提示


组合提交代码,你只需要提交



void trans(char *exp,char postexp[]) //将算术表达式exp转换成后缀表达式postexp

{

/**************begin************/









    /**************end************/

}






[提交][状态]
ACM算法攻关部