全文预览

数据结构课程设计-表达式类型的实现

上传者:qnrdwb |  格式:doc  |  页数:21 |  大小:482KB

文档介绍
} printf("\nE1 表达式的值为: %d",Value(E1)); ReadExpr(&E2); printf("\nE2 带括弧的中缀表示式为: "); WriteExpr(E2); Assign(&E2,V,c); CompoundExpr(P,&E1,E2); }5 、函数的调用关系除了主函数 main() 外,其他各个函数相对于其它函数来说是独立的,函数的使用都由主函数 main() 调用使用的,可以简单的说,各个函数都是主函数下的从函数。四、【调试分析】 1. 开始设计时我设想建树时可以设定五个域,左右孩子,标志 tag, int 型值域, char 型值域。但是在存储时发现每个字符只需占一个域就可以,所以我又采用共同体这样节约了内存。 2. 在算法设计中,构造表达式树的时候,本来以为使用递归构造表达式会很难做到出错处理的,所以采用了顺序栈辅助构造方法,并且尽可能地对程序进行完善,出错处理。但是经过与同学的相互讨论和研究,发现自己的想法犯了很大的错误,递归构造表达式对于出错处理很简单也很完善,这一点让我加深了递归的使用和理解。 3. 也就是三角函数问题, 我最头疼的地方。首先开始运行时会出现错误, 无法输出正确结果。通过网上搜索,我发现对于三角函数的定义类型必须是 double ,这样的话,如果要改的话,差不多改大半程序,所以我就让此功能单独出来,由提示让用户手动完成。 4. 在调试的过程中, 花费时间最为多的是对输入错误表达式的出错处理, 更改增加的代码几乎都是为了出错处理,但是,觉得这样的调试才更能锻炼一个人的编程能力。五、【用户使用说明】打开程序,按屏幕上的提示输入数据,随后就可以看到结果了。六、【测试结果】 1. 输入 0 2. 输入 a 3. 输入-91 4. 输入+a*bc 5. 输入+*5x2*8x 6. 输入+++*3^x3*2^x2x6

收藏

分享

举报
下载此文档