C语言 栈系列–>四则运算表达式求值
#include <stdio.h>
#include <stdlib.h>
#define ERROR 0
#define OK 1
typedef enum {
NUMBER,
OPERATOR
} ENUM_DATA_TYPE;
typedef struct {
ENUM_DATA_TYPE dt;
int value;
} Node;
typedef struct {
Node *data;
int size, top;
} Stack;
void init(Stack *s, int len) {
s->data = (Node *)malloc(sizeof(Node) * len);
s->size = len;
s->top = -1;
}
int push(Stack *s, Node e) {
if (s->top >= s->size - 1) {
return ERROR;
}
s->data[++(s->top)] = e;
return OK;
}
int pop(Stack *s) {
if