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

參考資料

相關文章
相關標籤/搜索