20162317 2017-2018-1 《程式設計與資料結構》第五週學習總結
教材學習內容總結
1、集合
2、抽象資料型別
3、資料結構
4、棧以及棧的相關應用
5、陣列棧
6、連結串列和連結串列棧
教材學習中的問題和解決過程
- 問題1:我看到了一個知識點:“物件引用變數”,由於我基礎不夠紮實,我不能夠理解物件引用變數是怎麼一種格式?
- 問題1解決方案:在查了Java物件及物件引用變數後,我大概知道物件引用變數的形式可以表示為:類 變數(例: String str中,String就是物件,str就是引用變數)並且知道了物件引用變數儲存的是物件的地址,而且引用變數還能作為指標,在連結串列中充當重要的成分。
- 問題2:在看到鏈式的時候看到一個知識點:“哨兵結點/虛位結點”,書上講得比較專業,我不能參透,於是上網查資料,但查了一些後仍然未能搞懂。
- 問題2解決方案:和同學討論後,當指標向後移動的時候,先前的結點就不能再次被呼叫,為了能夠使連結串列可持續使用,把第一個結點給複製,這個複製出來的結點就是哨兵結點,若要對連結串列重新引用,只要將指標指向這個哨兵結點即可。
- 問題3:我在書上看到這麼一段話:“結點類包含兩個重要的引用:一個用來指向連結串列中的下一個結點,另一個用來指向儲存的元素”,指向儲存的元素我懂,但指向連結串列中的一下個結點的意思是這些新的結點類組成一個連結串列,然後當前結點類指向下一個結點類的意思嗎?但標題是“沒有鏈的元素”,究竟是誰沒有鏈?
- 問題3解決方案:
就像圖片中的,上面結成鏈的就是結點類組成的連結串列,下面的就是沒有鏈的元素。
- 問題4:我在課本上看到這麼一句話:“通過使用介面名作為返回值型別,介面機制可讓方法與實現棧的具體的類分開”,這說法十分抽象,希望能有例子並能給我解釋一下這個過程。
問題4解決方案:
- 問題5:我在課本上看到這麼一句話:“考慮到效率,陣列實現的棧將棧底放在下標為0的位置”我不太理解為何棧頂放在下標為0會費效率,怎麼費效率?
問題5解決方案:在做過例項和思考後,我覺得如果當棧底放在下標為0的位置的時候使用pop直接就可以從陣列後面的下標開始彈出,前面的不用動。如果相反的話每一次的pop都會導致前面有空缺,但是再次使用push功能的時候,就會將元素壓進前面的空格里,除非將後面的元素前移,這樣就會導致工作量增加,從而使效率降低。
程式碼託管
結對及互評
- 其他
好的特點仍然保留著:詳細說明參考資料、問的問題仍然較有水準。
學習進度條
程式碼行數(新增/累積) | 部落格量(新增/累積) | 學習時間(新增/累積) | ||
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 200/200 | 2/2 | 20/20 | |
第二週 | 20/220 | 1/3 | 20/40 | |
第三週 | 645/865 | 1/4 | 14/54 | |
第五週 | 654/1519 | 1/5 | 18/72 |
計劃學習時間:20小時
實際學習時間:18小時
改進情況:之所以這一週花的時間較少是由於本章節較多知識點都已經講過,因此有一部分看的速度比較快,理解得也不錯。