20172332 2017-2018-2 《程序设计与数据结构》第三周学习总结

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小时

  • 改进情况:因为和栈的思路很像,所以很多都是在栈的代码上进行修改。

参考资料

posted @ 2018-09-25 20:54  雲深不知处  阅读(212)  评论(0编辑  收藏  举报