20172320 2018-2019-1 《Java程序设计》第3周学习总结

20172320 2018-2019-1 《Java程序设计》第3周学习总结

教材学习内容总结

1.队列元素是按先进先出(FIFO)的方式处理。比较FIFO和LIFO:在栈中,其处理过程只在栈的某一端进行;而在队列中,其处理过程可在队列的两端进行
2队列的操作

操作 说明
enqueue 向队列末端添加一个元素
dequeue 从队列前端删除一个元素
first 考察队列前端的那个元素
isEmpty 判定队列是否为空
size 判定队列中的元素数目
toString 返回队列中的字符串表示

.enqueue,dequeue和first等操作对应于栈的push,pop和peek。Queue并没有实现传统的.enqueue,dequeue和first操作
3。队列的使用:代码秘钥,售票口模拟
4.队列与栈的主要差别在于,必须要操作链表的两端
5.enqueue和dequeue操作作用于队列的对立端
6.非环形数组实现元素移位,将产生O(n)的复杂度
7.把数组看作是环形,可以除去在队列的数组实现中把元素位移的需要
8.双端队列是队列的扩展,他允许从队列的两端添加、删除和查看元素

教材中遇到的问题和解决过程‘

  • 问题1:书上代码报错
  • 解决方案:因为API中就没有enqueue这个方法,应该先把列的代码写出来,再替换成对应的代码
    前面的LinkedList<>(Customer)应改为LinkedList<Integer>(Customer)

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

  • 问题1:PP52显示异常
  • 解决方案:一开始以为是toString出了问题,稍作修改还是这样,后来看到提示说”The queue is empty“才意识到可能是enqueue操作出了问题,对照书上检查一下发现少敲了一段

托管代码

结对及互评

点评过的同学博客和代码

  • 本周结对学习情况
    20172327
  • 结对学习内容
    学习教材第5章
    •运行教材上的所有代码
    •完成书本PP5.1、PP5.2、PP5.7
    •完成课后自测题,并参考答案学习

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/4 20/20
第二周 328/328 1/5 20/40

参考资料

猜你喜欢

转载自www.cnblogs.com/garolwz/p/9704111.html