全文预览

栈设计:表达式求值设计

上传者:苏堤漫步 |  格式:doc  |  页数:18 |  大小:162KB

文档介绍
intError=0; } elseif(IsEmpty(Whereat)==1){/*跳过在input文件中的空格*/ } elseif(IsEmpty(Whereat)!=1){ Reverse(Whereat); if(Top(Whereat)=='B'){ /*错误处理,*/ /*A表示操作数B表示运算符*/ PrintError=1; /*后缀表达式第一个元素应是操作数而不是运算符号*/ } fclose(Temp); Temp=fopen("Temp.txt","r+"); Calculate(OutputFile,Whereat,Temp); /*计算结果*/ } fclose(Temp); MakeEmpty(Whereat); /*清空Whereat用来处理下一行*/ putc('\n',OutputFile); /*在输出文件中换行*/ sample=getc(InputFile); }/*While循环结束*/?free(Whereat);?fclose(InputFile);?fclose(OutputFile);?remove("Temp.txt");/*删除Temp.txt*/?return1;}/******检查堆栈是否为空******/intIsEmpty(StackS){ return(S->Next==NULL); }/******检查float堆栈是否为空******/intFIsEmpty(FStackS){ return(S->Next==NULL); }/******弹出栈顶元素******/voidPop(StackS){ PtrToNodeFirstCell;?if(IsEmpty(S)) perror("EmptyStack"); else{ FirstCell=S->Next; S->Next=S->Next->Next;

收藏

分享

举报
下载此文档