20172307 2018-2019-1 《程序设计与数据结构》第8周学习总结
教材学习内容总结
- 二叉查找树是一种含有附加属性的二叉树,即其左孩子小于父结点,而父结点又小于或等于右孩子。
- 每个BinaryTreeNode对象要维护一个指向结点所存储元素的引用,另外还要维护指向结点的每个孩子的引用。
- 从二叉查找树中删除一个元素时,必须推选出另一个结点来代替要被删除的那个结点。
- 二叉查找树的最右侧结点会存放最大元素,而其最左侧结点会存放最小元素。
- 树的主要作用之一就是为其他集合提供高效的 实现。
- 如果二叉查找树不平衡,其效率可能比线性结构还要低。
- 右子树的高度减去左子树的高度称为
- 广义树:对结点所含有的孩子数目无限制的树。
- n元树:每一结点不超过n个孩子的树。(结点最多具有两个孩子的树称为二叉树)
- 树的平衡:树的所有叶子都位于同一层或者至少是彼此相差不超过一个层,就称之为是平衡的。
- 完全树:如果某树是平衡的,且底层所有的叶子都位于树的左边,则认为该树是完全树。
- 如果一棵n元树的所有叶子都位于同一层且每一结点要么是一片叶子要么正好具有n个孩子,则称此树是满的。
- 树的遍历
- 前序遍历:从根节点开始,访问每一结点及其孩子。
- 中序遍历:从根节点开始,访问结点的左孩子,然后是该结点,再然后是任何剩余结点。
- 后序遍历:从根结点开始,访问结点的孩子,然后是该结点的孩子,然后是该结点。
层序遍历:从跟结点开始,访问每一层的所有结点,一次一层。
教材学习中的问题和解决过程
问题1:如何创建一个泛型方法
- 问题1解决方案:创建一个泛型方法,需在方法头的返回类型前插入一个泛型声明
例:
public <T> T genericMethod(Class<T> tClass)throws InstantiationException ,
IllegalAccessException{
T instance = tClass.newInstance();
return instance;
}
代码调试中的问题和解决过程
- 问题1:
- 问题1解决方案:
代码托管
上周考试错题总结
- A node that does not have a parent is called the ______ of a tree.
A .foot
B .root
C .leaf
D .top
错误:A 正确:B
解析:没有父结点的是根结点。
结对及互评
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 6/6 | |
第二周 | 612/612 | 1/2 | 18/24 | |
第三周 | 516/1128 | 1/3 | 16/40 | |
第四周 | 702/1830 | 2/5 | 16/56 | |
第五周 | 1926/3756 | 1/6 | 18/74 | |
第六周 | 948/4304 | 1/7 | 18/92 |