20162306 2017-2018-1《程序设计与数据结构》 第7周学习总结
教材学习内容总结
-
1、 树:是非线性结构,其元素组织为一个层次结构。
(1)由一组结点及一组边构成;
(2)树的度表示树中任意结点的最大子节点数;
(3)有m个元素的平衡n叉树的高度是lognM; -
2、 树的遍历
(1)树的遍历有4种方法:先序遍历、中序遍历、后序遍历、层序遍历; -
3、树的实现策略
(1)在数组中计算链:使用数组实现二叉树时,位于位置n的元素的左孩子在(2n+1)的位置,其右孩子在(2*(n+1))的位置;
(2)在数组中保存链:树的基于数组的存储链实现方式可以占据数组中的连续位置,不管树是不是完全树;
(3)链式结点; -
4、二叉树的性质
若二叉树的根结点位于第一层,则
(1)在二叉树的第i层最多有2i-1个结点;
(2)深度为k的二叉树最多有2k-1个结点;
(3)对任何一课二叉树,如果其叶结点个数为n0,度为2的结点数为n2,则有:n0 = n2 +1; -
5、两种特殊的二叉树:完全二叉树
(1)满二叉树;
(2)完全二叉树; -
6、决策树
(1)结点表示判定点,结点的孩子表示那一刻可用的选择;
(2)使用决策树可以设计专家系统。
教材学习中的问题和解决过程
-
问题1:课上习题“已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点.......nm个度为m的结点,问该树中有多少个叶结点”?
-
问题1解决方案:课下通过问同学知道了答案应该是n2+2n3+3n4+......+(m-1)*nm+1
代码调试中的问题和解决过程
-
教材376页16.2的代码缺少ArrayIterator类。
-
解决方案:老师上课时提到了这个问题,又说这是下周的实验内容,需要自己写,尝试着写也没有写出来,还算没有解决的问题吧。。。
代码托管
结对及互评
- 博客中值得学习的或问题:
- 对于教材代码研究的很透彻
本周结对学习情况
[20162305](http://www.cnblogs.com/lyxwatm/p/7710984.html)
- 结对学习内容
- 梳理教材内容
- 理解ppt中的内容
其他(感悟、思考等,可选)
- 这周第十六章的教材内容比较简单,对于树的相关计算知识课上已经可以理解,剩下的就是要对于一些性质熟记,灵活运用了。但是对于书上的代码还是看不太懂,继续学习吧。。。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 10/10 | |
第二、三周 | 303/303 | 2/3 | 10/20 | |
第四、五、六周 | 700/1003 | 2/5 | 10/20 | |
第七周 | 663/1666 | 1/6 | 15/35 |
-
计划学习时间:12小时
-
实际学习时间:15小时