20162317 2017-2018-1 《程序设计与数据结构》第8周学习总结
教材学习内容总结
- 1、二叉查找树的定义、性质
- 2、向二叉查找树中添加元素的方法
- 3、在二叉查找树中删除元素的方法
4、旋转的定义、方法、意义
教材学习中的问题和解决过程
- 问题1:我在17章中看到这么一句话:“最高效的二叉查找树是平衡的”,我的问题是:什么叫平衡,是两边数的分布得当还是两边的结点分布得当?
问题1解决方案:我通过上网查找资料后得到平衡二叉树的概念:平衡二叉树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树(资料来源——平衡二叉树_百度百科)
代码调试中的问题和解决过程
- 问题1:在敲二叉查找树的主代码时看到这么一小段代码:
((BSTNode)root).add(item);
我的问题在于:为什么要强制转换
- 问题1解决方案:经过我的理解和同同学的讨论,我有以下结论:这里的root是从继承中super过来的,在构造方法被调用之前,root是BTNode类型的,而BTNode类型中没有add方法,因此要强制转换。其他的强制转换的原因也在于此。
代码托管
上周考试错题总结
- 错题1及原因,理解情况
- 错题2及原因,理解情况
- ...
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | ||
---|---|---|---|---|
目标 | 5000行 | 15篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 20/220 | 1/3 | 20/40 | |
第三周 | 645/865 | 1/4 | 14/54 | |
第五周 | 654/1519 | 1/5 | 18/72 | |
第六周 | 436/1955 | 1/6 | 16/88 | |
第七周 | 839/2794 | 2/8 | 20/108 | |
第八周 | 2143/4937 | 2/10 | 25/133 |
计划学习时间:18小时
实际学习时间:25小时