该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
以下是程序,可能比较长,主要的问题是比如计算表达式6+3*(9-5)/2-8可得结果是4,但是如果输入3*4,则得到结果'
#include
using namespace std;
#include
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAXSIZE 100
typedef int Status;
typedef struct
{
char *base;
char *top;
int stacksize;
}SqStack;
Status InitStack(SqStack &S)
{
S.base=new char[100];
if(!S.base) exit(OVERFLOW);
else S.top=S.base;
S.stacksize=MAXSIZE;
return OK;
}
Status Push(SqStack &S,char e)
{
if(S.top-S.base==S.stacksize) return ERROR;
else *S.top++=e;
return OK;
}
char GetTop(SqStack S)
{
if(S.top!=S.base)</