20172327 2018-2019-1 《程序設計與數據結構》第四周學習總結
阿新 • • 發佈:2018-10-07
art 顯示 定義 .cn .com 引用 返回 一周 表示
1.鏈表和列表對比:鏈表是一種實現策略,使用引用來在對象之間創建鏈接。列表集合是一種概念性表示法,列表可以由鏈表和數組來實現。
2.棧和隊列都是線性結構,其元素只能在末端添加和刪除。列表集合更一般化,可以在列表的中間和末端添加和刪除元素。
3.列表集合分為3種類型:
有序列表(ordered list):其元素按照元素的某種內在特性進行排序。
無序列表(unordered list):其元素間不具有內在順序,元素按照它們在列表中的位置進行排序。
索引列表(indexed list):其元素可以用數字索引來引用。
1.很多常見操作可以為所有類型的列表定義,這些操作之間的差別在於如何添加元素。
2.
20172327 2018-2019-1 《程序設計與數據結構》第四周學習總結
教材學習內容總結
第六章 列表
列表集合 |
1.鏈表和列表對比:鏈表是一種實現策略,使用引用來在對象之間創建鏈接。列表集合是一種概念性表示法,列表可以由鏈表和數組來實現。
2.棧和隊列都是線性結構,其元素只能在末端添加和刪除。列表集合更一般化,可以在列表的中間和末端添加和刪除元素。
3.列表集合分為3種類型:
有序列表(ordered list):其元素按照元素的某種內在特性進行排序。
無序列表(unordered list):其元素間不具有內在順序,元素按照它們在列表中的位置進行排序。
索引列表(indexed list):其元素可以用數字索引來引用。
Java API 中的列表 |
1.Java集合API中提供的列表主要是支持索引列表。
2.Java API沒有任何類能直接實現以上描述的有序列表。
3.Arraylist和Linkedlist都實現了java.util.List接口。
方法 | 描述 |
---|---|
add(E element) | 往列表的末端添加一個元素 |
add(int index,E element) | 往指定索引處插入一個元素 |
get(int index) | 返回指定索引處的元素 |
remove(int index) | 刪除指定索引處的元素 |
remove(E Object) | 刪除指定對象的第一個出現 |
set(int index,E element) | 替代指定索引處的元素 |
size() | 返回列表中的元素數量 |
列表ADT |
1.很多常見操作可以為所有類型的列表定義,這些操作之間的差別在於如何添加元素。
2.
操作 | 描述 |
---|---|
removeFirst | 在列表中刪除第一個元素 |
removeLast | 在列表中刪除最後一個元素 |
remove | 在列表中刪除某個元素 |
first | 查看位於列表前端的元素 |
last | 查看位於列表末端的元素 |
contains | 確定列表是否含有某個元素 |
isEmpty | 確定列表是否為空 |
size | 確定列表中的元素數量 |
3.有序列表在添加元素時,只需要用add,位置取決於其鍵值。無序列表add操作有三種變體:addToFront(元素添加到列表前端)addToRear(元素添加到列表末端)addAfter(把元素添加到某個已知元素後邊)
教材學習中的問題和解決過程
- 問題1:
代碼調試中的問題和解決過程
- 問題1:在實現ArrayOrderedListTest測試時,我遇到了顯示最後一個數字時,人家顯示為null這個問題。
圖片 - 解決分析,在我對前面ArrayList類檢查時,發現我在顯示last時,將rear-1不小心寫成rear了,所以它所讀取的是最後一個後邊的,所以肯定為空。
代碼托管
結對及互評
正確使用Markdown語法(加1分)
模板中的要素齊全(加1分)
教材學習中的問題和解決過程, (加3分)
代碼調試中的問題和解決過程, 無問題
感想,體會真切的(加1分)
點評認真,能指出博客和代碼中的問題的(加1分)
- 20172317
基於評分標準,我給以上博客打分:4分。得分情況如下: 20172320
基於評分標準,我給以上博客打分:8分。得分情況如下:- 結對學習內容
- 教材第6章
- 完成課後自測題,並參考答案學習
- 完成課後練習題
- 完成程序設計項目:至少完成PP6.8、PP6.11、PP6.17
- 結對學習內容
其他(感悟、思考等,可選)
這周學的有點麻煩,棧還行,就是鏈表有點糊塗。
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 0/0 | 1/1 | 8/8 | |
第二周 | 1306/1306 | 1/2 | 20/28 | |
第三周 | 1291/2597 | 1/3 | 18/46 | |
第四周 | 4361/6958 | 2/3 | 20/66 |
參考:軟件工程軟件的估計為什麽這麽難,軟件工程 估計方法
計劃學習時間:10小時
實際學習時間:8小時
改進情況:
(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)
參考資料
《Java程序設計與數據結構教程(第二版)》
- 《Java程序設計與數據結構教程(第二版)》學習指導
- Java對象和引用變量
為什麽Java不支持多重繼承
20172327 2018-2019-1 《程序設計與數據結構》第四周學習總結