20162303 《程序設計與數據結構》第八週學習總結

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

參考資料

相關文章
相關標籤/搜索