20172327 2018-2019-1 《程序設計與數據結構》第三週學習總結
教材學習內容總結
第五章 隊列
1.隊列是一種線性集合,其元素從一端加入,從另外一端刪除,按先入先出的方式處理。
2.前端(隊首):front、head,末端(隊尾):rear、tail,
3.
| 操做 | 說明 |
| -------- | :------------------------------------------: |
| enqueue | 向隊列末端添加一個元素 |
| dequeue | 從隊列前端刪除一個元素 |
| first | 考察隊列前端的那一個元素 |
| isEmpty | 斷定隊列是否爲空 |
| size | 斷定隊列中的元素數目 |
| toString | 返回隊列的字符串表示 |
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.把數組看做是環形的,能夠除去在隊列的數組實現中把元素移位的須要。
教材學習中的問題和解決過程
代碼調試中的問題和解決過程
結對及互評
正確使用Markdown語法(加1分)
模板中的要素齊全(加1分)
教材學習中的問題和解決過程, (加3分)
代碼調試中的問題和解決過程, 無問題
感想,體會真切的(加1分)
點評認真,能指出博客和代碼中的問題的(加1分)前端
其餘(感悟、思考等,可選)
時間有點緊,最近有點忙,還需努力,完成實驗和該解決的問題數組
學習進度條
目標 |
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
參考資料