20162317 2017-2018-1 《程式設計與資料結構》第8周學習總結
教材學習內容總結
- 1、二叉查詢樹的定義、性質
- 2、向二叉查詢樹中新增元素的方法
- 3、在二叉查詢樹中刪除元素的方法
4、旋轉的定義、方法、意義
教材學習中的問題和解決過程
- 問題1:我在17章中看到這麼一句話:“最高效的二叉查詢樹是平衡的”,我的問題是:什麼叫平衡,是兩邊數的分佈得當還是兩邊的結點分佈得當?
問題1解決方案:我通過上網查詢資料後得到平衡二叉樹的概念:平衡二叉樹(Self-balancing binary search tree)又被稱為AVL樹(有別於AVL演算法),且具有以下性質:它是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹(資料來源——平衡二叉樹_百度百科)
程式碼除錯中的問題和解決過程
- 問題1:在敲二叉查詢樹的主程式碼時看到這麼一小段程式碼:
((BSTNode)root).add(item);
我的問題在於:為什麼要強制轉換
- 問題1解決方案:經過我的理解和同同學的討論,我有以下結論:這裡的root是從繼承中super過來的,在構造方法被呼叫之前,root是BTNode型別的,而BTNode型別中沒有add方法,因此要強制轉換。其他的強制轉換的原因也在於此。
程式碼託管
上週考試錯題總結
- 錯題1及原因,理解情況
- 錯題2及原因,理解情況
- ...
學習進度條
程式碼行數(新增/累積) | 部落格量(新增/累積) | 學習時間(新增/累積) | ||
---|---|---|---|---|
目標 | 5000行 | 15篇 | 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 | |
第六週 | 436/1955 | 1/6 | 16/88 | |
第七週 | 839/2794 | 2/8 | 20/108 | |
第八週 | 2143/4937 | 2/10 | 25/133 |
計劃學習時間:18小時
實際學習時間:25小時