隊列的示意圖
實現隊列時,要注意的是假溢出現象。如上圖的最後一幅圖。如圖所看到的的假溢出現象
解決的方法:使用鏈式存儲,這顯然可以。在順序存儲時。咱們常見的解決的方法是把它首尾相接,構成循環隊列。這可以充分利用隊列的存儲空間。
循環隊列示意圖:
在上圖中。front指向隊列中第一個元素。rear指向隊列隊尾的下一個位置。
但依舊存在一個問題:當front和rear指向同一個位置時,這表明的是隊空仍是隊滿呢?你們可以想象下這樣的情景。
解決這種問題的常見作法是:
1.使用一標記,用以區分這樣的易混淆的情形。
2.犧牲一個元素空間。當front和rear相等時,爲空。當rear的下一個位置是front時。爲滿。
例如如下圖:
html
問題1:在作習題pp5_1的時候,向隊列中添加了兩個不一樣的int型數值,可是輸出的時候兩個都是第一次輸入的數值。
前端
public void enqueue(T element) { LinearNode<T> node = new LinearNode<T>(element); if(isEmpty()) head = node; else tail.setNext(node); tail = node; count ++; }
轉眼間,開學也已經快一個月了,又找到了上學期學習的感受,但因爲中秋假期的影響,仍是感到本身這周的學習時間不太夠,僅僅只完成了教材內容和代碼練習而已,並無去進行更多的拓展學習。我能感到本身狀態有所好轉,可以靜下心來認真看書,專心敲代碼了,但仍是要付出更多的時間才行,繼續加油!java
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
第一週 | 200/200 | 1/1 | 5/20 | |
第二週 | 981/1181 | 1/2 | 15/20 | |
第三週 | 1694/2875 | 1/3 | 15/35 |
計劃學習時間:15小時node
實際學習時間:15小時git
目前水平 (0~9) | 課程結束後水平 (0~9) | |
---|---|---|
對編程整體理解 | 3 | 8 |
程序理解 | 5 | 8 |
模塊實現,逐步細化 | 2 | 7 |
單元測試,代碼覆蓋率 | 4 | 8 |
代碼質量 | 6 | 8 |