资源描述:
《数据结构中 算术表达式的求值演示 的源程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构中算术表达式的求值演示的源程序有标准答案吗,谢谢50分标签:求值算术表达式源程序标准答案概要设计回答:2浏览:2538提问时间:2005-12-1018:29这是课程设计,除了源程序,还要有需求分析,概要设计,详细设计,调试分析,用户手册,测试结果,心得体会,关键是需求分析,概要设计,详细设计,调试分析,用户手册不知道应该怎么写共0条评论...相关资料:算术表达式和赋值表达式(1).swf更多资料>>最佳答案此答案由提问者自己选择,并不代表爱问知识人的观点揪错┆评论┆举报killbig[学者]算术表达式的源程序#include#in
2、clude#include#definePOW1#defineMUL2#defineDIV3#defineADD4#defineSUB5#defineLp6#defineRp7#defineEND8#defineEpsilon1e-7typedefdoubleNODE;struct{charop;intcode;}opchTbl[]={{'*',2},{'/',3},{'+',4},{'-',5},{'(',6},{')',7},{'^',1},{'',8},{'',-1}};typedefstructnode{NOD
3、Edata;structnode*link;}LNODE;LNODE*optop,*numtop;NONO(char*t,doublesum){inti;charstr[15];FILE*wf;wf=fopen("62346_4.dat","w");for(i=0;i<62;i++){if(*(t+i)!=0&&*(t+i)!=10&&*(t+i)!=13)fprintf(wf,"%c",*(t+i));}sprintf(str,"=%f",sum);for(i=0;i<14;i++)if((int)str[i]!=48&&(int)str[i]!=15
4、)fprintf(wf,"%c",str[i]);fclose(wf);}voidl_push(NODEx,LNODE**toppt){LNODE*p=(LNODE*)malloc(sizeof(LNODE));p->data=x;p->link=*toppt;*toppt=p;}intl_pop(NODE*cp,LNODE**toppt){LNODE*p=*toppt;if(*toppt==NULL)return1;*cp=p->data;*toppt=p->link;free(p);return0;}intosp[]={5,3,3,2,2,5,1,1},
5、isp[]={4,3,3,2,2,0};voidsynError(){doubletemp;printf("syntaxerr!");while(optop!=NULL)l_pop(&temp,&optop);while(numtop!=NULL)l_pop(&temp,&numtop);exit(0);}doubleeval(chartag,doubleleft,doubleright){intn;doubleresult;switch(tag){casePOW:for(n=1,result=left;n6、turnresult;caseADD:returnleft+right;caseSUB:returnleft-right;caseMUL:returnleft*right;caseDIV:if(fabs(right)<=Epsilon){printf("/0err");exit(1);}returnleft/right;}printf("expressionerr!/n");return1.0;}intc='',k=0;intt[61];#defineRADIX10intgetToken(double*nump){doubledradix,num;int
7、i;while(c==''
8、
9、c=='t')c=getchar();if(c<'0'
10、
11、c>'9'){for(i=0;opchTbl[i].code!=-1&&opchTbl[i].op!=c;i++);if(opchTbl[i].code==-1)synError();if(c!='')c=getchar();t[k]=c;k++;returnopchTbl[i].code;}num=0;while(c>='0'&&c<='9'){num=RADIX*num+c-'0';c=getchar();t[k]=c;k++;}if(c=='.'){dradi
12、x=1.0/RADIX;c=getchar();t[