20172322 2017-2018-2 《程序设计与数据结构》第十周学习总结

20172322 2017-2018-2 《程序设计与数据结构》第十周学习总结

教材学习内容总结

  • 集合也是一种对象,类似于保存其他对象的存储库。
  • 动态链式结构
    • 它很好的解决了数组的长度无法变动的问题,使得无需在对象更多的情况下创建新的数组。
    • 它的效率相较于数组较高。
    • 它的大小在使用时动态确定,而不是声明时静态确定。
    • 单链结构最后一个节点为null,双向链第一个和最后一个节点都为null
  • 线性数据结构
    • 队列:先进先出。
    • 堆栈:先进后出。

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

  • 问题1:最初对于链表的的理解有些混乱,它的实现是基于什么?指针究竟是如何指向的?
  • 问题1解决方案:向王志强老师询问了相关问题,王老师为我解答了这些问题。next指向链表的下一个对象,而这个对象中可以存在很多种类型的对象。类似于PP13.1中,DVDList中的next它指向一个DVD对象,而DVD对象中又存在String类型的"title""director"也有int型的"year"double型的"cost"和boolean型的"bluray",这类似于数组的处理方法,一个对象中存在多种对象。
  • 问题2:队列也是一种线性数据结构,它与堆栈类似,只是他用代码又如何实现呢?
  • 问题2解决方案:上百度搜索了相关知识,并且找到了文章《java队列实现(顺序队列、链式队列、循环队列)》了解了三种队列的代码实现。
  • 问题3:树和图作为非线性数据结构的代表,它们的相同点和不同点是什么?
  • 问题3解决方案:
    • 不同点:图没有类似于树根节点那样的初始入口点。
    • 相同点:均可利用数组和动态链实现。
  • 问题4:书上并没有关于非线性数据结构树和图的详细解释及代码实现方案,这使得我这个求知欲望比较强的人没有感到满足。
  • 问题4解决方案:在百度上查阅相关资料,找到了《树 及 Java 实现》《数据结构--图 的JAVA实现(上)》来满足自己的求知欲望。

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

  • 问题1:在看书上例子MagazineList.java时总是感觉到有些别扭,MagazineNode的存在意义是什么?
  • 问题1解决方案:询问王志强老师,老师解释说,MagazineNode它可以并在Magazine类中,类似于以下代码:
public Magazine magazine
public Magazine next;

public Magazine(Magazine mag)
{
    magazine = mag;
    next = null;
}

从以上代码可以看出MagazineNode的存在只是书上例子为了我们的理解,但是好像适得其反。

  • 问题2:在做PP13.3时,不知道如何实现相关的要求,最初也没有理解“以整形术作为节点的链表”
  • 问题2解决方案:询问了结对伙伴范雯琪同学,并且借鉴了她的部分代码,在相应位置加上了自己理解的注释。看懂了她的代码实现方式,感觉到自己本周状态不是很好。
  • 问题3:在做PP13.3的main函数时,还是照着书上例子MagazineRack来写rack.add(new int(1))
  • 问题3解决方案:作为int型的数,它并不需要new一个int来加入。感觉自己这周像个智障
  • 问题4:在做PP13.1时,最初的输出总是null而且找不到问题,如图。
  • 问题4解决方案:范雯琪同学帮我看了看代码,发现问题是在两个参数的位置放反了
    ,调整一下之后就没有问题了。
    之后自己也想通了这个问题,应该是dv的值赋给dvd。

代码托管


上周考试错题总结

  • 侥幸本周没有错题。

结对及互评

  • 博客中值得学习的或问题:
    • 优点:许多老师课上所讲的只是她都在博客中予以复现,使得今后的复习中更加方便的回忆起老师在课上所讲的内容。
    • 不足:在上周我本来是看到她想实现目录功能才去自己的博客实现的,结果她到现在还是没有目录功能...
  • 代码中值得学习的或问题:
    • 优点:在经过上周的建议过后她将代码分在了不同的文件夹中,这让查看代码的人更加方便的查看代码,她对我的建议的及时采纳值得我的学习。
    • 不足:近期的代码中不存在或者比较少的存在自己的注释,虽然自己在当时编程时能理解自己的编程方式,但是别人或者自己时间久了以后或许就不是很理解了,我觉得可以在部分重要行中加入自己的注释。

点评过的同学博客和代码

  • 本周结对学习情况
    • 20172303

    • 结对学习内容

      • 范雯琪同学在我做PP13.1时为我提供列莫大的帮助,在给我讲解了相关问题的同时也并没有让我自己利用她的成果,而是让我再看一遍代码并且加上自己的注释。我觉得有这样的结对伙伴真是太棒了!

其他

  • 感悟:本周的实验内容虽然很快就完成了,但是书上的学习却是浑浑噩噩。需要调整一下自己状态。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 242/242 1/4 13/13 增加了对Java的兴趣
第二周 297/539 1/5 15/28 发现目标并没有想象中那么难
第三周 315/854 2/7 18/46 突然发觉JAVA的难度不小
第四周 1269/2123 1/8 50/96 Java难到哭,但是有信心击败他!
第五周 737/2860 1/9 30/126 难度的减小激发了学习动力
第六周 542/3402 2/11 20/146 不能说难度变小!!!又难了T T
第七周 956/4357 1/12 35/181 平平淡淡才是真
第八周 2448/6805 3/15 80/261 四则运算花的时间太多了,还好书上例题的代码老师给了
第九周 1284/8089 2/17 70/331 IO异常的处理是真的有点难度
第十周 907/8996 1/17 40/371 需要调整自己的状态!!
  • 计划学习时间:40小时

  • 实际学习时间:40小时

  • 改进情况:commit的要求继续实施,根据学长对上周博客的肯定加强自己的信心,我也去学习了一下他人的优秀博客,并且在自己博客中取长补短。

参考资料

posted @ 2018-05-20 20:07  zhangyeye233  阅读(195)  评论(6编辑  收藏  举报