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分。得分情况如下:
- 正确使用Markdown语法(加1分):
- 模板中的要素齐全(加1分)
- 教材学习中的问题和解决过程,加4分
- 代码调试中的问题和解决过程, 加3分
- 本周有效代码超过300分行的(加2分)
- 其他加分:
- 扣分: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小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)