20162303 2017-2018-1 《程序設計與數據結構》第五週學習總結
教材學習內容總結
- 瞭解樹的概念
- 二叉樹
二叉樹是每一個節點最多有兩個子樹的樹結構。「左子樹」(left subtree)和「右子樹」(right subtree)。
二叉樹的第i層至多有2^{i-1}個結點;深度爲k的二叉樹至多有2^k-1個結點;對任何一棵二叉樹T,若是其終端結點數爲n_0,度爲2的結點數爲n_2,則n_0=n_2+1。
一棵深度爲k,且有2^k-1個節點稱之爲滿二叉樹;深度爲k,有n個節點的二叉樹,當且僅當其每個節點都與深度爲k的滿二叉樹中,序號爲1至n的節點對應時,稱之爲徹底二叉樹。
-二叉樹是遞歸定義的,其結點有左右子樹之分,邏輯上二叉樹有五種基本形態:
(1)空二叉樹——如圖(a);
(2)只有一個根結點的二叉樹——如圖(b);
(3)只有左子樹——如圖(c);
(4)只有右子樹——如圖(d);
(5)徹底二叉樹——如圖(e)。
- 二叉查找樹能夠幫助找到特定的元素。左子樹都小於父結點,右子樹都大於父結點。
教材學習中的問題和解決過程
- 問題:不太理解平衡二叉樹的涵義
- 問題解決:平衡樹通常是排序樹的一種,而且加點條件,就是任意一個節點的兩個叉的深度差很少(好比差值的絕對值小於某個常數,或者一個不能比另外一個深出去一倍之類的)。這樣的樹能夠保證二分搜索任意元素都是O(log n)的,通常還附帶帶有插入或者刪除某個元素也是O(log n)的的性質。
參考連接
代碼調試中的問題和解決過程
- 問題1:須要補充查找最大值和最小值的代碼
- 問題1解決方案:比較容易實現,最大值從根結點向右,最小值從根結點向左。
結對及互評
點評模板:
本週結對學習狀況
- [20162307](http://www.cnblogs.com/Tiffany23/)
- 結對學習內容
- 一塊研究上課所學內容
- 交流實驗
其餘
本週實驗完成的不太順利,書裏內容理解出現了一些誤差,不過以後諮詢了同窗,理解改變了。但願繼續努力,繼續進步吧html
學習進度條
目標 |
5000行 |
30篇 |
400小時 |
|
第一週 |
70/70 |
1/1 |
12/12 |
|
第三週 |
208/278 |
1/2 |
12/24 |
|
第五週 |
529/807 |
1/3 |
12/36 |
|
第八週 |
801/1608 |
1/4 |
12/48 |
|
參考:軟件工程軟件的估計爲何這麼難,軟件工程 估計方法git
計劃學習時間:12小時數據結構
實際學習時間:12小時學習
參考資料