《程序设计与数据结构》第8周学习总结

教材学习内容总结

  • 本周做了有关树的实验。内容是关于ch16、ch17的PP
  • 有关二叉查找树的概念。

教材学习中的问题和解决过程

  • 问题1:二叉查找树如何添加元素?
  • 问题1解决方案:首先我们需要了解二叉树中元素是如何放置的。我们定义一个根的元素,然后把新加进来的元素和根比较(以第二个加进来的元素为10,根为20举例)。10<20,所以我们将10放在根的左结点,由于根的左子树目前只有一个元素所以我们将10设置为根的左子树的根。如果第三个元素是11,那么我们首先和根比较,小于20,那么我们将11往下放,与10比较,比10大,那么我们放在10的右结点上。(如果添加的元素比20小也比10小那么放在10的左结点)以此类推。右子树也是一样的道理。总的来说,二叉树的元素放置是以根为基准,比根大的放右子树,比根小的放左子树。如果一样的话左右子树任君挑选。

代码调试中的问题和解决过程

  • 问题1:二叉查找树如何实现findmax和findmin方法
  • 问题1解决方案:在杨京典同学的帮助下完成。我感觉实现查找树中最大值最小值最难的地方还是在于返回值。我是在结对伙伴刘伟康的帮助下完成的。首先我们要获取的元素(拿最小值举例),思考一下,树中的最小值在哪?——在叶结点。查找树的最小值在哪?——左子树的叶结点。那我们怎么获取左子树叶结点的元素呢?——中序遍历第一个访问的元素是哪?——左子树的叶结点。那我们就得出来结论了。那么我们返回哪里呢?——返回0,因为是第一个元素并且从0开始数数。
    最大值类比最小值

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

结对及互评

20162330刘伟康

点评模板:

  • 博客中值得学习的或问题:
    • 未发表
  • 代码中值得学习的或问题:
    • 加上注释后一目了然。
  • 博客中需要注意的问题:

本周结对学习情况

- [20162330](http://www.cnblogs.com/super925/)
- 结对学习内容
    - 实验二 树

其他(感悟、思考等,可选)

现在对于课堂上讲的东西都能听懂但代码实现不来,还是敲的太少了

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90
第五周 300/1600 4/13 25/120
第六周 300/1900 1/14 20/140
第七周 300/2200 3/17 20/160
第八周 100/2300 2/19 15/175

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:20小时

  • 实际学习时间:15小时

  • 改进情况:有人监督的情况下学习时间多数在图书馆

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

posted on 2017-10-29 23:49  20162319莫礼钟  阅读(142)  评论(0编辑  收藏  举报