第七周学习总结
Posted zjwbk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第七周学习总结相关的知识,希望对你有一定的参考价值。
学号 2019-2020-1 《数据结构与面向对象程序设计》第七周学习总结
教材学习内容总结
十二章在讲编程中的时间复杂度的概念,时间复杂度越低,程序运行效率越高。时间复杂度的计算可通过寻找运行次数最多的程序,计算他的运行次数,取n的最高次方的极数,即为程序的时间复杂度。
栈可以理解为一类数据的集合,栈中的元素可以写入,也可以读出。元素存在先后次序。先入栈的先被读出。栈可用数组,链表两种形式实现。应注意使用数组的实现链表时要注意数组大小,在push过程中可添加扩大数组大小的程序。这样的栈通过数组下表定义顺序。
栈实现的链表通过setnext来实现链接
泛型:通过泛型来定义类
class Box<T>
。可使栈使用更加灵活。栈中所存放的元素可通过使用时定义来实现。T即为战中存放数据的类型。如定义一个int型的栈Box<Integer> num1 = new Box();
,即栈中存放int型的变量。若要对栈中的元素进行操作需要定义int型变量,或者需要定义方法返回值为int时,都可使用T来代替。而声明该类的对对象时,应Box<T> num1
来定义。
教材学习中的问题和解决过程
- 问题1:对泛型的理解不够深入。实例化时难以定义对象。
问题1解决方案:起初被
class Box<T>
迷惑,不会使用。经百度及课本查询,得知该类名与其他类名无异,只是可以使程序更加灵活。- 问题2:对时间复杂度的计算还容易出现错误。
问题2解决方案:时间复杂度可通过计算运行次数最多的程序来看。可通过数学计算方法来计算。
代码调试中的问题和解决过程
问题1:程序运行时,提示pop方法出错。
问题1解决方案:经单步调试,发现count数值有误。count表示节点个数,而栈中数组定义从0开始。因此
stack[count]
本就为空。而count修改为count-1即可解决问题。
问题2:在用数组实现栈时,但数组下标会随着插入,删除,排序而改变,不方便的第二次操作。并且栈头也会丢失掉。
问题2解决方案:为解决问题,我决定变换思路。起初我一节点为单位,实现节点之间的连接与断开连接。这样容易导致数组下标排序混乱。所以我决定将整个数组连接好,固定节点将数值放到每个节点盒子里,所以这样数组下标可以保持不变,从而解决问题。
- 问题3:在泛型输出时,toString自定义为String型输出,而泛型T未定义,就会产生String=String+T型的式子,若T定义为Int,则为String=String+Int;
问题3解决办法,通过对比测试,发现该代码在运行时并未出错,可能为IDEA在运行时自动进行转换。
- 问题4:在前缀转后缀的练习中,将前缀表达式输入数组再取出时会产生元素排列顺序混乱等问题,难以实现代码。
问题4解决办法:通过网络查找,使用两个数组进行编写,一个用于接收数据,另一个用于重组,既保证元素的灵活操作,又保证了数组的稳定性。
代码托管
上周考试错题总结
未考试
结对及互评
- 基于评分标准,我给本博客打分:13分。得分情况如下:
正确使用Markdown语法加1分:
模板中的要素齐全加1分
教材学习中的问题和解决过程, (加4分)
代码调试中的问题和解决过程, (加2分)
周五前发博客的加1分
进度条中记录学习时间与改进情况的加1分
错题学习深入的加1分
- 结对学习情况真实可信的加1分
感想,体会不假大空的加1分
点评过的同学博客和代码
- 本周结对学习情况
其他(感悟、思考等,可选)
数据结构的学习要注意各种结构的特点,注意数据与数据连接时的细节,注意数据的结构特点,数据的存储(顺序还是链式),能进行的操作,以及操作的关键语句
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 | |
第五周 | 500/1000 | 3/7 | 22/60 | |
第六周 | 700/1300 | 2/9 | 22/90 | |
第七周 | 1300/1000 | 3/7 | 30/60 |
计划学习时间:20小时
实际学习时间:22小时
参考资料
以上是关于第七周学习总结的主要内容,如果未能解决你的问题,请参考以下文章