• 第五周学习总结


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

    教材学习内容总结

    • 集合分为两类:线性的:集合中的元素排成一行,非线性集合:按不同于一行的方式来阻止元素,例如按层次或是按网络的方式。
    • 栈(Stack)是一个线性集合,其元素的添加及删除都是在一端进行。栈的处理方式是后进先出。
    • Object类引用可指向任意一个对象,因为所有的类都派生于Object类。
    • 泛型:可以定义一个类,它保存,操作并管理直到实例化时才确定具体类型的对象。
    • 链表与普通数组不同,没有容量上限,它的大小总随着所保存的元素个数在变大或变小。
    • 环境变量的几种配置方法:1.通过命令进行,将修改值作为选项传给编译程序或运行时环境。2.在命令解析器中临时修改CLASSPATH环境变量。
    • 错误和异常代表不常见或不正确的处理。

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

    • 问题1:第十四章中提到了“哨兵结点”,“哨兵结点可作为一个假的首结点,实际上并不代表表中的元素。”书上没有提哨兵结点如何实现?有什么用处?
    • 解决方法:我看完书后去网络上看了一些论坛关于链表哨兵结点的解释,通过对网上一些论坛回复的阅读(https://www.zhihu.com/question/27155932) , 我理解的哨兵结点就是在头结点之前再申请一个结点(哨兵结点)作为原头结点的前驱结点,这样就可以简化代码,避免掉教材337页在头结点后面插入新结点的麻烦。

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

    • 问题1:在完成ArrayStack的isEmpty方法时,我最开始编写了一个代码,大致是遍历数组,当这一项元素不为空时,返回布尔变量result的结果为真,当result为假时,返回result为假,最后返回result的值。结果在测试isEmpty方法时没通过。
    • 解决方案:修改了几次测试代码中的stack的添加,删除元素后我发现是我的ArrayStack类里的方法编写的问题。我有点想当然了,认为只要数组全空这个方法就会一直返回result=true,然后就会返回true这个唯一出现的值,但实际上,根据上面的代码,每扫描一个元素就会返回一个result,最后有多少个元素就有多少个result,单元测试的时候assertEquals里一个expected值怎么对比的出来?后来我学习了袁逸灏同学一个比较严谨的方法,用数组为空元素的个数与数组长度相比,来判断result的值。
    • 问题2:IDEA上有几个测试代码周一测试的时候还能用,现在运行报错了,正在调试中。

    代码托管

    image

    结对学习情况

    • 20162317袁逸灏
      • 结对学习内容
        • 如何优化isEmpty方法
      • 他的博客中值得学习的地方
        • 图文并茂,在对栈的理解中他运用了很多的栈的示意图来帮助理解。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 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
    第五周 400/1300 2/11 42/100
    • 计划学习时间:15小时

    • 实际学习时间12小时

  • 相关阅读:
    raw_input() 与 input() __ Python
    局域网文件夹上传解决方案
    网页文件夹上传解决方案
    前端文件夹上传解决方案
    JavaScript文件夹上传解决方案
    JS文件夹上传解决方案
    VUE文件夹上传解决方案
    WebUploader文件夹上传解决方案
    B/S文件夹上传解决方案
    CSharp文件夹上传解决方案
  • 原文地址:https://www.cnblogs.com/cs162315/p/7674512.html
Copyright © 2020-2023  润新知