数据结构代码.docxVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
#includestdio.h#includestdlib.h #includestring.h typedef struct( char op; int level;JOpNode; typedef struct( OpNode op[100]; int top;} stack; void init(stack *st)( st-top=0;) OpNode pop(stack *a){ if (a-top==0) return a-op[—(a-top)];) void push(stack *a,OpNode op)( a-op[(a-top)++]=op;) OpNode top(stack *a)( if (a-top==0) return a-op[(a-top)-l];) typedef struct( double num[100]; int top;} numstack; void init2(numstack *st) st-top=0;double pop2(numstack *a) if (a-top==0) ( return(-l); ) a-top; return a-num[a-top];) void push2(numstack ^a,double num)( a-num[(a-top)++]=num;) void main() ( void change (char str[],char exp[]); double CalResult(char exp[]); double Directcalresult(char str[]); char str[100],exp[100]; printf(算术表达式为:\n); gets(str); change(str,exp); gets(exp); printf(后缀表达式为:%s\n”,exp); printf(运算结果为:%f\nH ,CalResul t(exp)); printf(直接运算的结果为:%f\n ,Directcalresult(str));void change (char str[],char ch[]) ( int i=0; int k=0; char c; stack st; OpNode op; OpNode ops; init(st); c=str[i++]; while (c!=\0)if ((c=Oc=9)||c==.) while ((c=0c=,9,)||c==1.)ch[k++]=c; c=str[i++];) ch[k++]=T;) if(c==()( op.op-(;op.level=-l; push(st,op);) if(c=)){ op=top(st);while (st.top! =0op.op!=,() (op=pop(st); chfk++]=op.op;if (st.top0) op=top(st); else break;) pop(st);} if(c==Tc=?)( op.op=c;op.level=l; if (st.top==0)( push(st,op);/) else( ops=top(st);while (ops.level=op.level) ( ops=pop(st);ch[k++]=ops.op; if (st.top0) ops=top(st);else break;push(st,op); )) if(c==^f||c==7,||c==,%)( op.op=c;op.level=2; if (st.top==0) (push(st,op); ) else ( ops=top(st);while (ops.level=op.level) ( ops=pop(st); ch[k++]=ops.op;if (st.top0) ops=top(st); else break; ) push(st,op);) ) c=strfi++]; ) while(st.top!=0)( ops=pop(st); ch[k++]=ops.op; ) ch[k]=\O;double CalResult(char exp[]) ( char c;numstack numst; double dl,d2,dr;int k=0; int i=0;char *s; char transflOO];init2 (numst); c=exp[k++];while (c!=0‘) (if(c=-+||c==-,||c=-*|||c==7|||c=-%1) {switch(c) (case: d2=pop2(numst);d 1 =pop2(numst); dr=dl+d2; push2(numst,d

文档评论(0)

suzhanhong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6052124120000104

1亿VIP精品文档

相关文档