学号 2019-2020-20182318 《数据结构与面向对象程序设计》第7周学习总结
教材学习内容总结
- 十二章在讲编程中的时间复杂度的概念,时间复杂度越低,程序运行效率越高。时间复杂度的计算可通过寻找运行次数最多的程序,计算他的运行次数,取n的最高次方的极数,即为程序的时间复杂度。
- 栈可以理解为一类数据的集合,栈中的元素可以写入,也可以读出。元素存在先后次序。先入栈的先被读出。栈可用数组,链表两种形式实现。应注意使用数组的实现链表时要注意数组大小,在push过程中可添加扩大数组大小的程序。这样的栈通过数组下表定义顺序。
栈实现的链表通过setnext来实现链接 - 还学习了队列:JavaAPI中的队列
使用队列:代码密钥
使用队列:售票口模拟队列ADT用链表实现队列用数组实现队列
双端队列
教材学习中的问题和解决过程
- 问题1:对泛型的理解不够深入。实例化时难以定义对象。
- 问题1解决方案:起初被class Box
迷惑,不会使用。经百度及课本查询,得知该类名与其他类名无异,只是可以使程序更加灵活。 - 问题2:对时间复杂度的计算还容易出现错误。
- 问题2解决方案:时间复杂度可通过计算运行次数最多的程序来看。可通过数学计算方法来计算。
- 问题3:什么是溢出?溢出有哪些情况?
问题3解决方案:
顺序表的溢出现象:
(1)“下溢”现象
当队列为空时,做出队运算产生的溢出现象。“下溢”是正常现象,常用作程序控制转移的条件。
(2)"真上溢"现象
当队列满时,做进栈运算产生空间溢出的现象。“真上溢”是一种出错状态,应设法避免。
(3)"假上溢"现象
由于入队和出队操作中,头尾指针只增加不减小,致使被删元素的空间永远无法重新利用。当队列中实际的元素个数远远小于内存中本分配的空间时,也可能由于尾指针已超越向量空间的上界而不能做入队操作。该现象称为"假上溢"现象。
代码调试中的问题和解决过程
- 问题1:在编译时无法载入
- 问题1解决方案:自己百度,请教同学,更改了路径。
- 问题2:代码逻辑错误,idea不太会单步调试
- 问题2解决方案:
- 设置断点
- debug
- 下一步
- 进入代码
- 如何操作链接
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
上周没有考试,无错题
点评过的同学博客和代码
- 本周结对学习情况
- 20182333
- 结对照片
- 结对学习内容
- 安卓中代码的实现和布局
- 如何将idea代码上传的码云。并建立同步链接
其他(感悟、思考等,可选)
Java学习一刻也不能放松,安卓自学还要加强
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第七周 | 863/200 | 2/2 | 26/20 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:20小时
-
实际学习时间:18小时
-
改进情况:下周多练习
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)