20162317 2017-2018-1 《程序设计与数据结构》第8周学习总结

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小时

posted @ 2017-10-28 09:57  FunnyOne  阅读(235)  评论(0编辑  收藏  举报