在上週學習完關於棧的知識事後,這周咱們學習了關於隊列的知識。html
Queue
接口中定義了一個element
方法,用於獲得隊列前端的值,提供了兩個方法add
和offer
用於添加和插入元素,另外poll
和remove
從隊列中刪除元素。QueueADT
的接口,咱們的主要任務也是實現它的enqueue
dedqueue
first
isEmpty
size
toString
enqueue
操做,在隊列末端添加一個新元素,將當前末尾元素的next引用指向須要添加的新元素,而且將tail
引用設置爲新元素。dequeue
操做刪除隊列前端的元素直接令head = head.getNext
便可,不過須要注意當刪除掉隊列的最後一個元素後,head
和tail
的引用都是null
。其餘須要實現的內容在後面部分會說起。enqueue
dedqueue
的實現引入了取餘操做符%
以便rear
和front
的值無誤。在上週學習了分別使用鏈表和數組來實現棧之後,本週利用數組和鏈表來實現對流相對簡單,僅須要對部分代碼進行修改便可,但仍是存在了一個問題:前端
CircularArrayQueue
進行補全時前面幾個方法都比較簡單,可是size
和toString
方法出現了問題。size
方法上,由於toString
方法調用了size
。解決此次問題我使用了三種方法:java
第一種:git
致使的問題:編程
致使了數組的長度爲1600,而且出現了很是多的null。數組
第二種:數據結構
致使的問題:模塊化
size
方法調用顯示的仍是刪除之前的樣子。單元測試
第三種:學習
我在網上查閱相關資料(《JAVA-循環數組實現簡單的隊列》)之後,問題終於得以解決。
上週沒有考試,故也沒有錯題。
(本部分用於收集本章節後的生詞)
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 0/5000 | 2/2 | 8/8 | 認真學習!積極向上 |
第二週 | 812/812 | 1/3 | 22/30 | |
第三週 | 814/1626 | 1/4 | 20/50 |
計劃學習時間:20小時
實際學習時間:20小時
改進狀況:繼續加緊學習的腳步。
技能 | 課前評估 | 課後評估 |
---|---|---|
對編程總體的理解 | 4 | 8 |
程序理解 | 4 | 8 |
構架設計,模塊化設計,接口設計 | 3 | 8 |
單元測試,代碼覆蓋率 | 5 | 9 |
代碼質量 | 3 | 8 |
效能分析和改進 | 2 | 7 |