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

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

教材学习内容总结

1、集合
2、抽象数据类型
3、数据结构
4、栈以及栈的相关应用
5、数组栈
6、链表和链表栈

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

  • 问题1:我看到了一个知识点:“对象引用变量”,由于我基础不够扎实,我不能够理解对象引用变量是怎么一种格式?
  • 问题1解决方案:在查了Java对象及对象引用变量后,我大概知道对象引用变量的形式可以表示为:类 变量(例: String str中,String就是对象,str就是引用变量)并且知道了对象引用变量保存的是对象的地址,而且引用变量还能作为指针,在链表中充当重要的成分。
  • 问题2:在看到链式的时候看到一个知识点:“哨兵结点/虚位结点”,书上讲得比较专业,我不能参透,于是上网查资料,但查了一些后仍然未能搞懂。
  • 问题2解决方案:和同学讨论后,当指针向后移动的时候,先前的结点就不能再次被调用,为了能够使链表可持续使用,把第一个结点给复制,这个复制出来的结点就是哨兵结点,若要对链表重新引用,只要将指针指向这个哨兵结点即可。
  • 问题3:我在书上看到这么一段话:“结点类包含两个重要的引用:一个用来指向链表中的下一个结点,另一个用来指向保存的元素”,指向保存的元素我懂,但指向链表中的一下个结点的意思是这些新的结点类组成一个链表,然后当前结点类指向下一个结点类的意思吗?但标题是“没有链的元素”,究竟是谁没有链?
  • 问题3解决方案:

就像图片中的,上面结成链的就是结点类组成的链表,下面的就是没有链的元素。

  • 问题4:我在课本上看到这么一句话:“通过使用接口名作为返回值类型,接口机制可让方法与实现栈的具体的类分开”,这说法十分抽象,希望能有例子并能给我解释一下这个过程。

  • 问题4解决方案:

  • 问题5:我在课本上看到这么一句话:“考虑到效率,数组实现的栈将栈底放在下标为0的位置”我不太理解为何栈顶放在下标为0会费效率,怎么费效率?

  • 问题5解决方案:在做过实例和思考后,我觉得如果当栈底放在下标为0的位置的时候使用pop直接就可以从数组后面的下标开始弹出,前面的不用动。如果相反的话每一次的pop都会导致前面有空缺,但是再次使用push功能的时候,就会将元素压进前面的空格里,除非将后面的元素前移,这样就会导致工作量增加,从而使效率降低。

代码托管

结对及互评

  • 其他

好的特点仍然保留着:详细说明参考资料、问的问题仍然较有水准。

学习进度条

| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)
| -------- | :----------------😐:----------------😐:---------------: |:-----😐
| 目标 | 5000行 | 30篇 | 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 | |

  • 计划学习时间:20小时

  • 实际学习时间:18小时

  • 改进情况:之所以这一周花的时间较少是由于本章节较多知识点都已经讲过,因此有一部分看的速度比较快,理解得也不错。

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