20172315 2018-2019-1 《程序设计与数据结构》第三周学习总结

20172315 2018-2019-1 《程序设计与数据结构》第三周学习总结

教材学习内容总结

  • 队列(queue)是一种线性集合,其元素从一端加入,从另外一端删除;队列元素是按先进先出(First In First Out,FIFO)方式处理的。
  • 从队列删除元素的次序,与往队列放置元素的次序是同样的。
  • enqueue、dequeue和first等操做对应于栈的push、pop和peek等操做。
  • Java集合API提供了java.util.Stack类,它实现了栈集合。但它并无提供队列类,而是提供一个Queue接口,由多个类(包括LinkedList类)来实现的。
  • java.util.Stack 类提供了传统的push、pop和peek等操做。而Queue接口并无实现传统的enqueue、dequeue和first操做。Queue接口定义了另外两种方法,往队列中添加元素或从队列中删除元素。这些方法在异常类处理上有很大的不一样。一个是提供了一个布尔返回值,另外一个是抛出一个异常。
  • 队列是一种可存储重复编码密钥的便利集合。
  • 队列与栈的主要差异在于,咱们必需要操做链表的两端。
  • 那两个分别指向链表首元素、链表末元素的引用方便队列的链表实现。
  • 因为队列操做会修改集合的两端,所以将一端固定于索引0处要求移动元素。
  • 把数组看做是环形的,能够除去在队列的数组实现中把元素移位的须要。
  • 双端队列(Deque)是队列的扩展,它容许从队列的两端添加、删除和查看元素。php

    教材学习中的问题和解决过程

  • 问题1:对于书上所讲的双端队列产生好奇,想知道如何具体实现的
  • 问题1解决方案:百度查询资料有了具体了解。双端队列html

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

  • 问题1:编写pp5.7时没有思路
  • 问题1解决方案:查询资料:双向链表:
    就是有双向指针 即 双向的链域
    链结点的结构:
    ┌────┬────┬────────┐
    │data│next│previous│
    └────┴────┴────────┘
    双向链表没必要是双端链表(持有对最后一个链结点的引用),双端链表插入时是双向的
    有两条链:一条从头至尾,一条从尾到头,删除遍历时也是双向的

代码托管

(statistics.sh脚本的运行结果截图)java

上周考试错题总结

上周无测试git

结对及互评

点评模板:

  • 博客中值得学习的或问题:
    • 提出的问题较少
    • 教材内容总结比较到位
  • 代码中值得学习的或问题:
    • 代码十分简洁,一目了然
    • 代码量较少

点评过的同窗博客和代码

  • 本周结对学习状况
    • 20172318web

    • 结对学习内容
      • 第五章
  • 上周博客互评状况

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 0/0 0/0
第二周 800/800 2/2 18/18
第三周 600/1400 3/5 22/40

参考资料

相关文章
相关标签/搜索