20162306 2017-2018-1 《程序设计与数据结构》第5周学习总结
教材学习内容总结
-
1、 集合:是收集并组织其他对象的对象。
(1)集合主要分为两类:线性的和非线性的;
(2)集合中元素的组织方式的决定因素:他们加入集合的次序、元素之间的某些固有的关系;
(3)集合是隐藏其实现其细节的一个抽象名称; -
2、 栈集合
(1)最先进入的元素最先离开(LIFO);
(2)抽象数据类型(ADT);
(3)栈中操作:push、pop、peek、isempty、size; -
3、继承、多态和泛型
(1)多态引用使用对象类型而不是引用的类型来判定要调用的是哪个方法;
(2)集合中元素的组织方式的决定因素:他们加入集合的次序、元素之间的某些固有的关系;
(3)集合是隐藏其实现其细节的一个抽象名称; -
4、栈的ADT
-
5、使用栈:计算后缀表达式
(1)栈是计算后缀表达式时使用的理想数据结构; -
6、异常
(1)错误和异常代表不常见或不正确的处理; -
7、使用数组实现栈
-
8、使用链表实现栈
教材学习中的问题和解决过程
-
问题1:对于书上14.10.4中哨兵结点的用法不能理解。
-
问题1解决方案:通过上网查阅资料后,发现网上关于哨兵结点的资料也很少,依旧不是很清楚。哨兵(sentinel)是个哑元节点(dummy node),可以简化边界条件,使代码更紧凑,但对速度并没有什么帮助。作为一个假的首结点,不代表表中的任何元素,起到提高效率的作用。
代码调试中的问题和解决过程
-
对于教材14.12.1LinkedStack代码中的peek方法如何实现。
-
解决方案:通过上网查阅博客,对书上代码进行了扩充,来查询栈顶元素。
代码托管
上周考试错题总结
- 活动还没结束,还没看见答案和解析。
结对及互评
- 博客中值得学习的或问题:
- 对于教材代码研究的很透彻
本周结对学习情况
[20162305](http://www.cnblogs.com/lyxwatm/p/7670095.html)
- 结对学习内容
- 梳理教材内容
- 理解ppt中的内容
其他(感悟、思考等,可选)
- 这周最大的收获在于刘老师和王老师所说的“代码学习,看懂不代表会写了”,找到了之前代码学习的误区,尽管难度很大,还是尽量自己去写吧。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 10/10 | |
第二、三周 | 303/303 | 2/3 | 10/20 | |
第四、五、六周 | 700/1003 | 2/5 | 10/20 |
-
计划学习时间:12小时
-
实际学习时间:10小时