算术表达式求值数据结构代码

算术表达式求值数据结构代码

ID:48318598

大小:82.00 KB

页数:11页

时间:2020-01-10

算术表达式求值数据结构代码_第1页
算术表达式求值数据结构代码_第2页
算术表达式求值数据结构代码_第3页
算术表达式求值数据结构代码_第4页
算术表达式求值数据结构代码_第5页
资源描述:

《算术表达式求值数据结构代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#include#include#include#includeusingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2#defineSTACK_SIZE100#defineSTACKINCREMENT10#defineOPSIZE7typedefdoubleElemType;typedefcharSElemType;charop[OPSIZE]={'+','-

2、','*','/','(',')','#'};charprior[OPSIZE][OPSIZE]={{'>','>','<','<','<','>','>'},{'>','>','<','<','<','>','>'},{'>','>','>','>','<','>','>'},{'>','>','>','>','<','>','>'},{'<','<','<','<','<','=',''},{'>','>','>','>','','>','>'},{'<','<','<','<','<','','='}};typedefstru

3、ct{ElemType*top;ElemType*base;intStacksize;}OPND;typedefstruct{SElemType*top;SElemType*base;intStacksize;}OPTR;voidInitStack(OPND*S1){S1->base=(ElemType*)malloc(STACK_SIZE*sizeof(ElemType));if(NULL==S1->base){printf("InitFailed!");exit(OVERFLOW);}else{S1->top=S1->bas

4、e;S1->Stacksize=STACK_SIZE;}}intStackEmpty(OPND*S1){if(S1->top==S1->base)return1;elsereturn0;}intStackEmpty(OPTR*S2){if(S2->top==S2->base)return1;elsereturn0;}voidInitStack(OPTR*S2){S2->base=(SElemType*)malloc(STACK_SIZE*sizeof(SElemType));if(NULL==S2->base){printf("In

5、itFailed!");exit(OVERFLOW);}else{S2->top=S2->base;S2->Stacksize=STACK_SIZE;}}voidPush(OPND*S1,ElemTypee){if(S1->top-S1->base>=S1->Stacksize){S1->base=(ElemType*)realloc(S1->base,(S1->Stacksize+STACKINCREMENT)*sizeof(ElemType));if(!S1->base)exit(OVERFLOW);S1->top=S1->

6、base+S1->Stacksize;S1->Stacksize=S1->Stacksize+STACKINCREMENT;}*S1->top=e;S1->top++;}voidPush(OPTR*S2,SElemTypee){if(S2->top-S2->base>=S2->Stacksize){S2->base=(SElemType*)realloc(S2->base,(S2->Stacksize+STACKINCREMENT)*sizeof(SElemType));if(!S2->base)exit(OVERFLOW);S2-

7、>top=S2->base+S2->Stacksize;S2->Stacksize+=STACKINCREMENT;}*S2->top++=e;}ElemTypePop(OPND*S1,ElemType*e){if(!StackEmpty(S1)){S1->top=S1->top-1;*e=*S1->top;}else{returnERROR;}returnOK;}SElemTypePop(OPTR*S2,SElemType*e){if(StackEmpty(S2)){returnERROR;}else{*e=*--S2->top;

8、}returnOK;}ElemTypeGetTop(OPND*S1,ElemType*e){if(!StackEmpty(S1)){*e=*(S1->top-1);}returnOK;}SElemTypeGetTop(OPTR*S2,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。