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

教材学习内容总结

学习目标

  • 定义与树相关的术语

  • 讨论树实现的策略

  • 讨论树的不同的遍历方法

  • 使用二叉树表示决策树

二叉树的性质

  • 性质1:在二叉树的第i层上至多有2i-1个结点(i≥1)。(数学归纳法可证)

  • 性质2:深度为k的二叉树最多有2k-1个结点(k≥1)。(由性质1,通过等比数列求和可证)

  • 性质3:一棵二叉树的叶子结点数为n0,度为2的结点数为n2,则n0 = n2 + 1。

  • 性质4:具有n个结点的完全二叉树的深度为floor(log2n) + 1 。

  • 性质5:如果对一棵有n个结点的完全二叉树(其深度为floor(log2n) + 1 )的结点按层序编号,则对任一结点

教材学习中的问题和解决过程

  • 问题1:对于已知遍历反推二叉树不能很熟练的掌握

  • 问题1解决方案:寻找了一个例题联系了一下:先序遍历:GFKDAIEBCHJ
    中序遍历:DIAEKFCJHBG
    已知以上两个二叉树遍历,怎么样能反推出二叉树?

解答:由前序知,g为root,f为左孩子,又根据中序知道,g没右支。
看f,由中序知,DIAEK为f左支,CJHB为f右支
由前序知,k为f左孩子,d为k左孩子,k无右支
又由中序知,d没左支。
那么iae为d右支,又由前序知,a为d右孩子,而i、e为其左右叶子
同样的道理计算出f右支cjhb的顺序,就求出来了

错题及总结(活动未结束,暂时无法看具体解析)

代码托管

结对及互评

讨论了逆推二叉树

本周结对学习情况

思考

学习还需要进一步深入

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/1 6/6
第二、三周 403/403 2/3 14/20
第4、5周 1452/1855 2/5 8/28
第6周 231/2086 1/6 8/36
第七周 620/2706 2/8 8/44

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:9小时

  • 实际学习时间:8小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

posted @ 2017-10-21 14:16  20162312张家铖  阅读(151)  评论(0编辑  收藏  举报