前缀表达式求值(逆序读取数据,利用栈的性质求值)
程序是实验的时候写的,数字入栈哪里第一个if语句判定存在问题。我也不明白问题所在,加了两个条件运行才正常,程序有不完善的地方欢迎大佬评论区指正。能够对新人有所帮助就好。
#include<stdio.h>
#include<ctype.h>
#include<iostream>
#include<stdlib.h>
#include<string.h>
#define MAXSIZE 30
using namespace std;
typedef double elemtype;
typedef struct //定义一个栈
{
elemtype *base;
elemtype *top;
int stacksize;
}Stack;
void InitStack (Stack *s) //创建空栈
{
s->base = new elemtype[MAXSIZE]; //分配地址,分配失败则退出
if (!s->base)
exit(0);
s->top = s->base; //空栈,top指针和base指针地址相同,表明这是一个空栈
s->stacksize = MAXSIZE;
}
void InStack (Stack *s,elemtype e) //入栈
{
//栈满则在原来的地址上追加空间
if (s->top - s->base >= s->stacksize)
{
s->base = (elemtype