第五章主要對隊列進行了介紹,隊列從一端進入從量一端刪除,隊列遵循先進先出的原則(First in First out FIFO)
隊列ADT應該包含的方法:php
操做 | 說明 |
---|---|
enqueue | 向隊列末端添加一個元素 |
dequeue | 從隊列前端刪除一個元素 |
first | 考察隊列前端的那個元素 |
isEmpty | 斷定隊列是否爲空 |
size | 判斷隊列中的元素數目 |
toString | 返回對列的字符串表示 |
java集合API提供了java.util.Stack類,它實現了棧集合。沒有提供隊列類。而是提供了一個Queue的接口,由多個類實現
隊列的應用:
代碼密鑰:使用隊列儲存密鑰,能夠重複使用,對密文進行加解密。
售票口模擬:現創立一個Customer類,儲存顧客的時間。使用隊列模擬客戶的實踐,進行試驗來模擬售票口的狀況,最後肯定最佳的售票口數量。
隊列的實現:
使用鏈表實現隊列:須要定義兩個指針,一個head,一個tail,還有一個統計元素數量的int值count,方便在隊首和隊尾,進行插入和刪除。雙向鏈表實現比單鏈表容易。
使用數組實現隊列:用兩個整數型變量rear,和front來表示數組的頭和尾(注意在這裏,兩個整數型不表明儲存的位置,而是表示隊列的順序,在採用環形數組是,更要注重對rear和front把握,不然就會丟失隊列中的數據)html
問題1:在進行測試時發現沒法引用變量。還有toString方法沒有辦法正常調用
前端
問題2:發現一堆錯誤。
java
問題2解決方案:最終發現是本身實現的isEmpty方法有問題,後將if的判斷語句由(head.getelement==null)改成(head==null)就OK了。git
技能 | 課前 | 課後 |
---|---|---|
Programming: Comprehension(程序理解) (如何理解已有的程序,經過閱讀,分析,debug) | 4 | 7 |
Programming: Design (架構設計, 模塊化設計,接口設計) | 2 | 6 |
Programming: Test (單元測試、代碼覆蓋率) | 2 | 4 |
Program: Performance (效能分析和改進) | 1 | 5 |
Programming: Code Review/Code Quality (代碼複審/代碼規範/代碼質量) | 1 | 3 |
Programming: Command line and files (處理命令行參數和文件系統) | 1 | 4 |
Personal Software Process (我的軟件過程) :我的源碼管理(TFS/GitHub) | 3 | 7 |
本週通過了緊張而充分的學習,學會了用鏈表實現隊列用數組實現隊列等。還接觸到了存在於邏輯上的數組——「環形數組」。感受本身從靈魂上的到了昇華。路漫漫其修遠兮,吾將上下而求索。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 30/30 | 1/1 | 10/10 | |
第二週 | 766/796 | 1/2 | 40/50 | |
第三週 | 817/1613 | 1/3 | 20/7 |
1.藍墨雲班課
2.java軟件結構與數據結構web