# 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小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)