2.非正常测试数据(2组)及运行结果。 (1)约瑟
夫环:
(2)多项式
:
(3)合并多项
式
五.流程图
1):约瑟夫环: 主函数 录入信息
依次循环出列
输出出列列表
2)多项式 主函数
创建单向链表,录入两个多项
式
利用函数将多项式进行相
加,相减运算
输出两个多项式与运算后的结果
3)合并链表
主函数 创建两个链表a,b 按顺序将b插入a中 输出两个链表和排好序的链表 六.总结
1.实验过程中遇到的问题及解决办法。
其实三个程序主要涉及到的关键都是链表和指针的运用。而程序的难点主要是合理的创建链表,整理清楚链表和指针的关系。我们应该做的是尽量减少指针的数量和链表的复杂度。优化程序以减少每个程序的时间复杂度和空间复杂度。关于多项式与约瑟夫环这两个程序主要借鉴了课本上的示例所以并没有太多的问题。在按照顺序合并两个链表的问题中,开始我的想法是创建一个新的链表将前两个链表按顺序存进去。但如果这样做,会出现过多的指针,很容易将指针搞混出现问题。所以最后决定将后一个链表的元素按顺序存进前一个链表里,这样可以使程序更加简洁易于理解。在约瑟夫环的问题中,因为需要将每一个人的信息作为一个结点,结点中存放每个人的编号和密码,由于要反复做删除操作,时间复杂度太大。所以采用单向循环链表实现比较方便,将链表的尾元素指针指向链首元素。
2.对设计及调试过程的心得体会。
在代码的编写过程中,每个人都会遇到问题,这是毋庸置疑的。重要的是面对出现的问题所拥有的态度与应对方法。面对一个问题,首先应该做的不是动手写代码。而是应该先将所需解决的问题想清楚,将其功能模块化。仔细想清楚每个模块的详细功能和所需数据结构和算法细节。并且将每个模块的流程图画出来以方便代码的书写以及后边进行修改维护。
代码每编写好一个功能的代码一定要进行调试,一边及时发现问题,修改问题。防止最后全部代码写好后再进行修改错误,那样代码量会太大,修改问题
的难度也会加大。
面对程序所出现的问题,一定要保持冷静的头脑,找出问题出现的原因。将其分析清楚后再进行修改,不能在没找出具体问题的情况下就贸然凭着感觉去修改,那样出现的问题会更多。如果有自己不能解决的问题,要主动去请教老师或者同学,学会虚心请教别人,学会团队合作也是我们必须学会的。
六.附录:源代码(电子版)