20162303 2017-2018-1 《程序设计与数据结构》第五周学习总结
教材学习内容总结
- 了解树的概念
- 二叉树
二叉树是每一个节点最多有两个子树的树结构。“左子树”(left subtree)和“右子树”(right subtree)。
二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,若是其终端结点数为n_0,度为2的结点数为n_2,则n_0=n_2+1。
一棵深度为k,且有2^k-1个节点称之为满二叉树;深度为k,有n个节点的二叉树,当且仅当其每个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为彻底二叉树。
-二叉树是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:
(1)空二叉树——如图(a);
(2)只有一个根结点的二叉树——如图(b);
(3)只有左子树——如图(c);
(4)只有右子树——如图(d);
(5)彻底二叉树——如图(e)。

- 二叉查找树能够帮助找到特定的元素。左子树都小于父结点,右子树都大于父结点。

教材学习中的问题和解决过程
- 问题:不太理解平衡二叉树的涵义
- 问题解决:平衡树通常是排序树的一种,而且加点条件,就是任意一个节点的两个叉的深度差很少(好比差值的绝对值小于某个常数,或者一个不能比另外一个深出去一倍之类的)。这样的树能够保证二分搜索任意元素都是O(log n)的,通常还附带带有插入或者删除某个元素也是O(log n)的的性质。
参考连接
代码调试中的问题和解决过程
- 问题1:须要补充查找最大值和最小值的代码
- 问题1解决方案:比较容易实现,最大值从根结点向右,最小值从根结点向左。

结对及互评
点评模板:
本周结对学习状况
- [20162307](http://www.cnblogs.com/Tiffany23/)
- 结对学习内容
- 一块研究上课所学内容
- 交流实验
其余
本周实验完成的不太顺利,书里内容理解出现了一些误差,不过以后咨询了同窗,理解改变了。但愿继续努力,继续进步吧html
学习进度条
目标 |
5000行 |
30篇 |
400小时 |
|
第一周 |
70/70 |
1/1 |
12/12 |
|
第三周 |
208/278 |
1/2 |
12/24 |
|
第五周 |
529/807 |
1/3 |
12/36 |
|
第八周 |
801/1608 |
1/4 |
12/48 |
|
参考:软件工程软件的估计为何这么难,软件工程 估计方法git
计划学习时间:12小时数据结构
实际学习时间:12小时学习
参考资料