20162306 2017-2018-1 《程序设计与数据结构》第7周学习总结

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小时

参考资料

posted @ 2017-10-22 23:19  20162306陈是奇  阅读(160)  评论(0编辑  收藏  举报