需要预览带括号情况请点击: 栈的应用之算术表达式(带括号)
不带括号情况
【设计要求】输入包含±*/四种运算(不含有()括号的合法算术表达式,且操作数为1位整数,并计算其值,表达式以#开始,并以#结束)。计算算术表达式的值,并输出。运算符号的优先级对比如下表所示:
代码示例
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define STACK_INIT_SIZE 100 //存储空间初始分配量
#define STACKINCREMENT 10 //存储空间分配增量
typedef char SElemType;
typedef char OperandType; //表达式求值的运算类型
typedef int Status;
typedef struct
{
SElemType* base;
SElemType* top;
int stacksize;
}SqStack;
//构造一个空栈
Status InitStack(SqStack* S)
{
S->base = (SElemTy