20182328 2019-2020-1 《数据结构与面向对象程序设计》第七周学习总结

20182328 2019-2020-1 《数据结构与面向对象程序设计》第七周学习总结

教材学习内容总结

第12章

  • 1、算法分析的概念。
  • 2、增长函数的概念与表示的意义。
  • 3、算法的阶的概念与增长函数的关系。
  • 4、比较增长函数。
  • 5、算法复杂度的分析需要分析循环的执行情况。
  • 6、递归程序的分析。

第14章:

  • 1、集合的相关概念分类,以及集合和元素的关系。
  • 2、集合的特殊例子———栈的定义和相关操作,如添加、删除、查看、判定空集或个数等。
  • 3、(1)通过继承实现的多态来创建一个集合

    (2)可以使用泛型来安全有效的保存任意对象的集合

    (3)栈的ADT,特殊的java接口
  • 4、使用栈来计算后缀表达式。
  • 5、集合的异常
  • 6、通过使用数组来实现栈

    (1)如何创建数组对象

    (2)ArrayStack类的实现以及一些具体操作
  • 7、链式结构的基本定义和如何来创建链式结构
  • 8、如何使用链表来进行栈的操作
  • 9、如何使用链来实现栈

    LinkedStack类是栈实现的一个重要方法

    push操作

    pop操作
  • 10、如何使用java.util.Stack类来实现栈
  • 11、包的相关介绍。

第15章

  • 队列的相关概念以及对元素的处理方式
  • 利用队列特性的一些方法,如编码k值、模拟票务柜台
  • 如何使用链表来实现队列
  • 如何基于数组来实现队列

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

  • 问题1:链表和数组两者的相同与不同
  • 问题1解决方案:

    不同:数组在内存中是按次序存放的,而链表每个节点没有相对固定的位置关系,通常是不连续存放

    链表在中间任意位置添加删除元素很简单,只需要修改指针即可,但是寻找某个元素较为困难;数组寻找某个元素较为简单,但插入与删除相对比较复杂

    相同:两种结构均可实现数据的顺序存储,构造出来的模型呈线性结构。
  • 问题2:Java泛型有什么好处?有什么作用?
  • 问题2解决方案:
    1、类型安全,在编译期间可对类型进行检查,减少运行时由于对象类型不匹配引发的异常
    2、消除了强制类型转换,提高代码的重用率和性能。
  • 问题3:队列和栈有什么不同?
  • 问题3解决方案:
    插入删除操作的限定和规则不同,栈的插入和删除都在线性表的同一个端点,其规则是后进先出,队列只能在线性表的表头插入,其规则是先进先出

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

  • 问题1:toString方法如何实现?
  • 问题1解决方案:

    数组:从头部整形变量开始输出到尾部整形变量。

    链表:从链表的头部开始往尾部进行输出。

代码托管

上周考试错题总结

结对及互评

评分标准

  • 基于评分标准,我给本博客打分:16分。得分情况如下:
  1. 正确使用Markdown语法(加1分):
  2. 模板中的要素齐全(加1分)
  3. 教材学习中的问题和解决过程,加4分
  4. 代码调试中的问题和解决过程, 加3分
  5. 本周有效代码超过300分行的(加2分)
  6. 其他加分:
  7. 扣分:0分

点评模板:

  • 博客中值得学习的或问题:

    • 内容详实且精简
    • 问题充分且已解决
  • 代码中值得学习的或问题:

    • 正确且简练
    • 方法多样很值得学习
  • 参考示例

点评过的同学博客和代码

  • 本周结对学习情况
    • 20182322
    • 结对学习内容
      • 使用链表实现队列
      • 用数组实现队列

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

本周学到的内容相当的多,要想全部理解吸收还是很有难度的,但是努力的敲课本上的代码,再加上从网上搜资料还是能够解决问题的,总之还是要积累代码量和积极思考

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 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

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

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

  • 计划学习时间:XX小时

  • 实际学习时间:XX小时

  • 改进情况:

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

参考资料

posted @ 2019-11-04 16:05  20182328张景昊  阅读(133)  评论(1编辑  收藏  举报