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小時