20172304 《程序設計與數據結構》第四周學習總結

20172304 《程序設計與數據結構》第四周學習總結

教材學習內容總結

第六章主要介紹了列表,這個列表是一種概念上的籠統的定義。
列表包括鏈表和數組。
列表分爲:有序列表,無序列表,索引列表。php

有序列表 其元素按照元素的某種內在特性進行排序。
無序列表 其元素件不具備內在順序,元素按照他們在列表中的位置進行排序
索引列表 其元素能夠用數字索引來引用

有序列表和無序列表在插入式有區別,有序列表須要作到插入以後仍是有序的。而無序列表不是這樣的。而索引列表雖然能夠經過索引進行插入,刪除操做,可是仍是要保持連續。要作到索引之間是連續的。
java集合API中的列表html

方法 描述
add(E element) 往列表的末端添加一個元素
add(int index,E element) 在指定索引出插入一個元素
get(int index) 返回指定索引處的元素
remove(int index) 刪除指定索引處的元素
remove(E object) 刪除指定對象的第一個出現
set(int index,E element) 替代指定索引處的元素
size() 返回列表中的元素數量

使用無序列表:學習計劃
其中的Course類定義了一些課程的信息例如系名,成績等等。而後其中的ProgramOfStudy則是對Course類進行管理,作一些鏈表的基本操做。除此以外還添加了替換,查找等一些維護課程的必要操做。
索引列表應用實例:Josephus問題
這個就是隔幾取一的問題。經過鏈表實現
列表ADT、前端

公共操做java

操做 描述
removeFirst 從列表中刪除第一個元素
removeLast 從列表中刪除最後一個元素
remove 從列表中刪除某個元素
first 查看位於列表前端的元素
last 查看位於列表末端的元素
contains 肯定列表是否含有某個元素
isEmpty 肯定列表是否爲空
size 肯定列表中的元素數量

有序列表git

操做 描述
add 往列表中添加一個元素

無序列表web

操做 描述
addToFront 把元素添加到列表的前端
addToRear 把元素添加到列表的末端
addAfter 把元素添加到列表中某個一直元素的後面

使用數組實現列表
使用鏈表實現列表數組

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

  • 問題1:串行化的問題
  • 問題1解決方案:書上提了一嘴有關串行化的概念,可是並無深刻的講解,後來經過查閱資料得知,串行化能夠將數據轉換爲字節流,也就是計算機最基本的數據結構——二進制,這使得串行化後的數據能夠儲存在任何儲存空間。可是串行化只能應用在非靜態方法和變量。並且必須實現Serializable接口。
  • 代碼調試中的問題和解決過程

    因爲此次進行的內容以前已經進行過不少次了(即鏈表和數組的),因此碰見的問題不多。
  • 問題1:在進行測試時發現沒法引用變量。還有toString方法沒有辦法正常調用

    數據結構

  • 問題1解決方案:後來發現是沒有加運行函數。還有在toString的函數裏沒有將那個環形數組中開頭的索引值隨循環作自減運算。函數

代碼託管

代碼截圖
學習

錯題總結

第三週&第四周錯題
錯題一:

錯題一解答:
棧的pop操做返回的顯然是一個元素而不是一個節點,這是當時馬虎。
錯題二:

錯題二解答:後來在編碼過程當中實踐了是正確的。
錯題三:

錯題三解答:後面已經說了不是引用的類型,可是我仍是錯選了C,應該選A對象的類型。
錯題四:

錯題四解答:集合中儲存的對象只包含對象自己,並不會有其具體實現的細節。
錯題五:

錯題五解析:這是很明顯得是,在單向列表中,其中常的打印方式必然是從頭部開始的,對應實現的棧的出入棧操做也是在鏈表的頭部,也就是前部實現的。
第五週
錯題一:

錯題一解析:這道題我記得一開始我也想選A來着,知識不知道後來莫名其妙的選擇了B。

博客互評

  • 博客中值得學習的或問題:
    20172301 郭愷同窗本次博客十分簡潔,對教材的內容歸納的十分精煉,整體篇幅較短。
    20172328 李馨雨同窗此次的博客中規中矩,沒有特別出彩的地方,可是結構完整。

點評過的同窗博客和代碼

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

本週主要學習了列表,在個人認知中,列表就是包括鏈表和數組。通過了這麼長時間的打磨歷練,好像數組與鏈表的知識都已經掌握了,聽老師說後面的束河圖就要利用鏈表和數組方面的知識,不知道還要通過多少次考驗。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 30/30 1/1 10/10
第二週 766/796 1/2 40/50
第三週 817/1613 1/3 20/70
第四周 1370/3983 2/5 30/100

參考資料

1.藍墨雲班課
2.java軟件結構與數據結構
3.Java串行化問題

相關文章
相關標籤/搜索