需要预览不带括号情况请点击: 栈的应用之算术表达式(不带括号)
带括号情况
【设计要求】输入包含±*/四种运算,(含有()括号的合法算术表达式,且操作数为多位整数,并计算其值,表达式以#开始,并以#结束)。运算符号的优先级对比如下表所示:
代码实现
完整的代码需要私信我噢,下面展示的是不完整的哈🍨🍨
#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 = (SElemType*)malloc(STACK_INIT_SIZE * sizeof(SElemType));
if (!S->base)
{
printf("内存分配失败!\n");
exit(OVERFLOW);
}
S->top = S->base;
S->stacksize = STACKINCREMENT;
return OK;
}
测试用例
有任何问题欢迎私聊和评论指正哈!
完整代码私信我,下期见~🥧🥧