20172327 2018-2019-1 《程序設計與數據結構》第三週學習總結

20172327 2018-2019-1 《程序設計與數據結構》第三週學習總結

教材學習內容總結

第五章 隊列

概述


1.隊列是一種線性集合,其元素從一端加入,從另外一端刪除,按先入先出的方式處理。

2.前端(隊首):front、head,末端(隊尾):rear、tail,

3.
| 操做 | 說明 |
| -------- | :------------------------------------------: |
| enqueue | 向隊列末端添加一個元素 |
| dequeue | 從隊列前端刪除一個元素 |
| first | 考察隊列前端的那一個元素 |
| isEmpty | 斷定隊列是否爲空 |
| size | 斷定隊列中的元素數目 |
| toString | 返回隊列的字符串表示 |

Java API 中的隊列


1.Java集合API提供了Queue接口,由多個類來實現。

2.棧的首要做用是顛倒順序,隊列的首要做用是保持順序。html

用鏈表實現隊列


1.指向首元素的引用head,指向鏈表末的引用tail,整型變量count來跟蹤隊列中的元素數目。

2.必須一直認真地,精準地維護特殊狀況下地引用

3.對於一個空隊列,head,tail引用都爲null,count則爲0.

4.enqueue:將當前末元素的next引用設置指向這個新元素,從新將tail設置爲指向這個新添加的末元素。該操做的複雜度爲O(1).

5.dequeue:先判斷隊列是否有元素,若是沒有,拋出異常EmptyCollectionException,若是有元素,則正常刪除第一個元素,若是隻有惟一元素,則刪除隊列元素後,隊列就爲空,把tail引用設置爲null。該操做複雜度爲O(1).

6.enqueue和dequeue操做做用於隊列的對立端。

用數組實現隊列


1.因爲隊列操做會修改集合的兩端,所以將一端固定於索引0處要求移動元素。

2.因爲隊列處理會影響到該集合的兩端,所以從隊列中刪除元素的時候,該策略要求移動元素。

3.非環形數組實現的元素移位,將產生O(n)的複雜度。

4.把數組看做是環形的,能夠除去在隊列的數組實現中把元素移位的須要。

教材學習中的問題和解決過程

  • 問題1:無

代碼調試中的問題和解決過程

  • 忘截圖了

代碼託管

結對及互評

正確使用Markdown語法(加1分)
模板中的要素齊全(加1分)
教材學習中的問題和解決過程, (加3分)
代碼調試中的問題和解決過程, 無問題
感想,體會真切的(加1分)
點評認真,能指出博客和代碼中的問題的(加1分)前端

  • 20172317
    基於評分標準,我給以上博客打分:4分。得分狀況以下:
  • 20172320
    基於評分標準,我給以上博客打分:8分。得分狀況以下:git

    • 結對學習內容
      • 教材第5章
      • 完成課後練習題
      • 完成程序設計項目:至少完成PP5.一、PP5.二、PP5.9

其餘(感悟、思考等,可選)

時間有點緊,最近有點忙,還需努力,完成實驗和該解決的問題數組

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 0/0 1/1 8/8
第二週 1306/1306 1/2 20/28
第三週 1291/2597 1/3 18/46

參考:軟件工程軟件的估計爲何這麼難軟件工程 估計方法數據結構

  • 計劃學習時間:20小時學習

  • 實際學習時間:18小時.net

  • 改進狀況:設計

(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表
)3d

參考資料

相關文章
相關標籤/搜索