永发信息网

c语言:表达式求值实现

答案:1  悬赏:50  手机版
解决时间 2021-01-27 02:02
c语言:表达式求值实现
最佳答案
#include "stdio.h"
#include "malloc.h"

#define TRUE        1
#define FALSE       0
#define OK          1
#define ERROR       0
#define INFEASIBLE -1
#define OVERFLOW    -2

typedef int  Status;
#define STACK_INIT_SIZE  100
#define STACKINCREMENT   10

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)
        exit(OVERFLOW);
    S->top=S->base;
    S->stacksize=STACK_INIT_SIZE;
    return OK;
}
//判断是否为空栈
Status StackEmpty(SqStack S){
    if(S.top == S.base)
        return TRUE;
    else
        return FALSE;
}
//用e返回S的顶元素
Status GetTop(SqStack S, SElemType *e){
    if(S.top == S.base)
        return ERROR;
    *e = *(S.top-1);
    return OK;
}
//插入e为新的顶元素
Status Push(SqStack *S, SElemType e){
    if((S->top - S->base) >= S->stacksize){
        S->base = (
                    SElemType*)realloc(S->base,
                   (S->stacksize+STACKINCREMENT)*sizeof(SElemType)
                   );
        if(!S->base)
            exit(OVERFLOW);
        S->top = S->base +S->stacksize;
        S->stacksize += STACKINCREMENT;
    }
    *(S->top)=e;
    S->top++;
    return OK;
}
//删除S的顶元素,并用e返回其值
Status Pop(SqStack *S, SElemType *e){
    if(S->top == S->base)
        return ERROR;
    S->top--;
    *e = *(S->top);
    return OK;
}
//从栈底到栈顶依次对S的每个元素调用函数Visit(),一旦失败操作无效
Status ListTraverse(SqStack S,Status (*visit)(SElemType)){
    SElemType *p;
    p=S.base;
    for(p=S.base;p        (*visit)(*p);

    return OK;
}
//输出元素e
Status output(SElemType e){
    printf("%d ",e);

    return OK;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
农业自然资源生产率=有用成果/自然资源投入
mac我的世界1.12输入法补丁
成语坐而待旦的意思是什么啊?有知道释义的请
德国强力消石素绿色盒装大约多少钱一盒
DNF多久才能攒到2亿金币
时代驭菱v5柴油车排半售价和耗油量
下列说法不正确的是AA. 在进行酒精发酵的过程
尝试运行“C\windows\system32\Nvcpl dll,nvs
戒烟快40天了,头老是偏晕,出汗,拍片没有问题,
水浒1公斤银币纪念币今日市场价多少?
请问下西安的朋友,西安电子科技大学长安校区
下雨天汽车天窗没关 要怎么检查
微针我有什么用?容易长闭合性粉刺的可以用吗
杜甫诗 《哀王孙》有这样的诗句:“偶闻天子
成语自我吹嘘的意思是什么啊?有知道释义的请
推荐资讯
聚享游游戏交易平台是正规的吗?我卖游戏的钱
成语遵厌兆祥的意思是什么啊?有知道释义的请
一张猫和狗在一起的图,请给它们写几个英文字
汽车1.2得排量拉1.3吨重得车身怎么样?
句容去南京金桥市场怎么坐车
微波炉内为什么不用转盘?
优速快递(林荫路东50米优速快递)地址有知道的
福利彩票销售店(经七路与329省道交叉口西200
下列项目中可以计入进口货物采购成本的是( )
事业单位体检白细胞偏低是否合格
商场退款到银行卡里一般多久到账
3d中为什么我打的广域网不显示呢,渲出图来没
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?