20172332 2017-2018-2 《程序设计与数据结构》第三周学习总结
教材学习内容总结
第五章 队列
- 1.队列是一种线性集合,元素从一段加入从另一端删除(先进先出)。
- 2.队尾(tail),队首(head),队列前端(front),队列末端(rear)。
- 3.使用队列的一些实例:凯撒密码,售票口模拟。
- 4.分别用链表和数组实现队列。
- 5.双端队列,允许从队列的两端添加、删除和查看元素。
- 6.环形数组实现队列。
教材学习中的问题和解决过程
- 问题1:为什么用数组实现队列时,环形数组较好?
- 问题1解决方案:环形队列可以解决数组移动的缺点,当尾指针超出数组末尾时,尾指针移动数组头部。这就将数组虚拟成了一个环形,只要队列长度没达到最大值,就可以插入,而不用移动数组。
代码调试中的问题和解决过程
书上的代码有很多的错误!所以直接在源代码中修改了
- 问题1:从尾部移出元素的方法,元素个数变少了,但是最终toString方法时,还是会输出移出的元素。
- 问题1解决方案:运用了一个循环,找到倒数第二个元素,并把它做为了队尾。
代码托管
上周考试错题总结
- 上周没进行测试。
点评过的同学博客和代码
其他(感悟、思考等,可选)
- 首先我就想说一下我觉得这学期的教材没有上学期的好,其一是代码中出现了很多的错误,按照书上的代码敲的程序都不能正常运行,变量名前后不统一,多括号,变量名就是错的等等有好多的问题严重影响自主学习!其二是代码后没有给出运行结果,就无法对比自己的结果是否正确。
- 其次我要抽时间把用数组和链表实现栈和队列,还有双向链表,环形数组等好好研究一下做个总结博客,并且把以后要学的列表等慢慢补全。
- 最后想说的就是队列的实现和栈的思路很像。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 2/2 | |
第二周 | 1010/1010 | 1/2 | 10/12 | |
第三周 | 651/1661 | 1/3 | 13/25 |
-
计划学习时间:20小时
-
实际学习时间:13小时
-
改进情况:因为和栈的思路很像,所以很多都是在栈的代码上进行修改。