20182309 2019-2020-1 《数据结构与面向对象程序设计》第9周学习总结
20182309 2019-2020-1 《数据结构与面向对象程序设计》第9周学习总结
教材学习内容总结
- 树
- 一种非线性结构
- 二叉树
- 满二叉树
- 完全二叉树
- 实现树
- 遍历
- 前序:根左右
- 中序:左根右
- 后序:左右根
- 层序:横向看
- 决策树
教材学习中的问题和解决过程
- 问题1:满二叉树,完全二叉树
- 问题1解决方案:满二叉树是要求所有有节点的层都是满的,完全二叉树要求所有元素靠左上。
代码调试中的问题和解决过程
- 问题1:遍历时发现数组迭代器不在包里
- 问题1解决方案:自己写了一个数组迭代器,把要用的功能实现了
import java.util.Iterator;
public class ArrayIterator<T> implements Iterable<T> {
private final int DEFAULT_CAPACITY = 20;
private T[] ary;
private int count;
public ArrayIterator() {
count = 0;
ary = (T[]) (new Object[DEFAULT_CAPACITY]);
}
public void expandCapacity(){
T[] longer = (T[])(new Object[ary.length*2]);
for(int index = 0; index < count; index++)
longer[index] = ary[index];
ary = longer;
}
public void add(T element){
ary[count++] = element;
}
@Override
public Iterator<T> iterator() {
return null;
}
@Override
public String toString(){
String rpy = "";
for (int index = 0; index < count; index++)
rpy += ary[index];
return rpy;
}
}
代码托管
结对及互评
- 代码中值得学习的或问题:
- 提出与课本不同的方法解决问题
- 基于评分标准,我给本博客打分:10分。得分情况如下:
- 正确使用Markdown语法加1分
- 模板中的要素齐全加1分
- 教材学习中的问题和解决过程, 一个问题加1分
- 代码调试中的问题和解决过程, 一个问题加1分
- 本周有效代码超过300分行的加2分
- 排版精美的加1分
- 代码Commit Message规范的加1分
- 有动手写新代码的加1分
- 结对学习情况真实可信的加1分
点评过的同学博客和代码
- 本周结对学习情况
- 20182331
- 结对学习内容
- 阅读教材第16章和第17章内容
- 代码托管到码云上
- 完成课后自测题,并参考答案学习
- 完成课后练习题
- 完成程序设计项目,至少完成pp16.6,pp17.1
上周错题总结
-
In an ideal implementations of a stack and a queue, all operations are ______________________ .
A . O(1)
B . O(n)
C . O(n log n)
D . O(n2)
E . it depends on the operation
答案:B。在堆栈和队列的良好实现中,所有操作都需要固定的时间。 -
If a binary search tree is not __________, it may be less efficient than a linear structure.
A . complete
B . empty
C . balanced
D . None of the above
答案:C。如果二叉搜索树不平衡,它的效率可能低于线性结构。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 10000行 | 30篇 | 400小时 | |
第一周 | 138/138 | 2/2 | 25/25 | 学会写和上传代码,会编简单的输出程序 |
第二周 | 88/226 | 1/3 | 30/55 | 起文件名不能太长 |
第三周 | 898/1124 | 2/5 | 35/90 | Java类里面的方法和C语言的函数很像 |
第四周 | 632/1756 | 2/7 | 30/120 | 可以用继承extends简化重复的代码 |
第五周 | 770/2526 | 2/9 | 45/165 | --amend -m可以重命名没push的文件 |
第六周 | 3947/6473 | 2/11 | 40/205 | 接口类的功能要分散,利用多继承完成功能 |
第七周 | 1359/7832 | 3/14 | 35/240 | |
第八周 | 273/8105 | 1/15 | 15/255 | 查找前先排序更好 |
第九周 | 873/8978 | 2/17 | 50/305 |