20162311 2017-2018-1 《程序设计与数据结构》第七周学习总结
20162311 2017-2018-1 《程序设计与数据结构》第七周学习总结
教材学习内容总结
- 本周学习教材第十六章,主要内容是掌握数据结构中的树
- 树和栈、队列不同,它是非线性结构
- 学习了树的定义、分类、树的遍历等
- 树可以分为很多类,主要学习了二叉树,包括二叉树的一些性质
- 学习了四种树的遍历方法:先序、中序、后序及层序遍历,主要通过课上的测试和实践来了解和掌握。
教材学习中的问题和解决过程
- 问题1:在读到教材16.2 树的遍历 这里的时候,教材上讲了四种遍历的方法,但感觉讲的并不清楚,看了之后还是不太明白这四种方法到底是以什么样的顺序遍历整个树
- 问题1解决方案:继续往后看,教材中用来一张图来跟踪遍历的过程,看完图之后就明白了
主要是因为上张图中对于四种遍历的方法只有文字解释,所以一下子不能理解,在看到后面的图的演示之后,再与之前的文字描述相互印证,就很快理解了。
代码调试中的问题和解决过程
-
问题1:在实现书上代码时,
BTNode
类和LinkedBinaryTree
类中有一个没出现过的类——ArrayIterator
,始终找不到,java的包里也没有
-
问题1解决方案:询问老师,老师找了三个版本的教材都没找到这个类,后来老师自己写了一个ArrayIterator类,继承自ArrayList类
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
(活动还未结束,无法查看解析)
- 错题1及原因,理解情况
- 错题2及原因,理解情况
结对及互评
本周结对学习情况
-
结对学习内容
- 二叉树的性质
- 四种遍历方法是按什么顺序来的
思考
本周学习了树这种数据结构,它是非线性的,与之前所学的线性结构有所不同,所以不能再用之前的思维来学习树了。感觉非线性的结构要难一些,可能是刚开始学的原因吧,对于树的实现,树的遍历的实现,现在还是有些摸不着头脑,还需要更深入地学习,需要多查查资料,多动手设计,尽量自己用代码实现。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 10/10 | |
第二周 | 0/0 | 0/1 | 15/25 | |
第三周 | 721/721 | 3/4 | 15/40 | |
第四周 | 0/721 | 1/5 | 15/55 | |
第五周 | 1234/1955 | 1/6 | 16/71 | |
第六周 | 0/1955 | 3/9 | 20/91 | |
第七周 | 1474/3429 | 2/11 | 24/115 |
|
-
计划学习时间:28小时
-
实际学习时间:24小时
-
改进情况:本来预计平均每天的学习时间应该达到至少4小时,但实际没花那么多,应该是效率提高了。不过除了完成应有的作业外,想要有所提高,还应额外花时间学习课外的知识