全球旧事资料 分类
实用文档文案大全
f实用文档
1、实验目的和要求
(1)深入理解栈的特点及其描述方法。(2)能够在两种存储结构上实现栈抽象数据类型实现。(3)掌握栈的几个典型应用算法,能灵活应用栈解决实际问题。
2、概要设计
【定义所有抽象数据类型、自定义函数间的调用关系图,自定义函数的功能描述和流程图,以及主程序的流程图。】
开始
While1Y
EvaluateExpressio
输出结果
定义运算符和操作数栈并初始化并fflushstdi
清除缓存
输入每个字符并执行相应的条件语句入栈出栈
比较OPTR的栈顶元素和ch的优先级
charPrecedeSElemType_OPTRtop
运算并将结果出栈Operate
3、调试分析
【1调试过程中遇到的问题是如何解决的以及对设计与实现中关键点的回顾讨论和分析;2算法的时空分析包括基本操作和其他算法的时间复杂度和空间复杂度的分析和改进设想;3经验和体会等。】
文案大全
f实用文档
1栈的定义、初始化、出栈进栈、取栈顶元素等步骤不难就先把结构打好了2操作数和运算符分别入不同的栈
chari
t进操作数栈先考虑了小于10的整数直接进栈重点是运算符的优先级这块函数的编写3前面的都听简单的,就是小数编写这块想了很久,将单个字符转为整数后还要定一个doublep使依次输入的数成一个小数p在小数入栈使要考虑放在那条if语句中,防止在运算结果入栈后p再次入栈,又定义了i
tflag通过flag的值判定p是否入栈。并且成功入栈后pq都要回到初始状态。小数解决
4负数部分讨论一开始就有负数和运算符后面有负数的情况。(比较容易)
右图重点。定义了low做判定符号的标志。如果在运算符后输入负号则low1将p入栈时入栈的是plow,继续输入ch。
文案大全
f实用文档
总结:我觉得写的好的地方在于定义了flaglow分别作为小数入栈和负号与减号区别的条
件。第一次写这么长的代码,还有就是将输入的字符再转到小数这段代码可以留着很有用。开始考虑的大整数想麻烦了,直接用double难度降低了很多
4、测试数据与结果
【列出你的测试结果,包括输入和输出。测试数据应该完整和严格,最好多于需求分析中所列。】
序号输入112212
输出30003000
说明减负数两负数
3124366434522432
100080001000
小数长串乘方
6366234
6320
7134523666
2339
5、附录
【给出每部分的源代码(必须要有一定量的注释)。】
commo
hi
clude
好听全球资料 返回顶部