20162312第八周学习总结
教材学习内容总结
学习目标
-
讨论二叉查找树的特性
-
探讨二叉查找树的链式实现方式
-
讨论Comparable接口
-
讨论二叉查找树的旋转
二叉查找树的性质
-
对于树中的每一个节点X,它的左子树任一节点的值均小于X,右子树上任意节点的值均大于X.
-
二叉查找树是java的TreeSet和TreeMap类实现的基础
-
由于树的递归定义,二叉查找树的代码实现也基本上都是使用递归的函数,二叉查找树的平均深度是O(logN).
教材学习中的问题和解决过程
-
问题1:二叉查找树的删除掌握不是很好
-
问题1解决方案:查找资料了解到删除涉及三种情况及对应解法: 被删除节点是树叶节点(没有子树):最简单,直接删除,将该节点置为null即可
被删除节点有一个子节点(左子树或右子树):是该节点的父节点指向该节点的子节点(左或右).(左图)
被删除节点有两个子节点:用其右子树中的最小值代替该节点上的值,删除其右子树上的最小值.(左图)
错题及总结(活动未结束,暂时无法看具体解析)
代码托管
结对及互评
讨论了二叉查找树如何删除及实验
本周结对学习情况
思考
学习还需要进一步深入
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 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 | |
第八周 | 722/3428 | 2/10 | 8/52 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:9小时
-
实际学习时间:8小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)