1. 程式人生 > >20172307 2018-2019-1 《程式設計與資料結構》第8周學習總結

20172307 2018-2019-1 《程式設計與資料結構》第8周學習總結

20172307 2018-2019-1 《程式設計與資料結構》第8周學習總結

教材學習內容總結

  • 二叉查詢樹是一種含有附加屬性的二叉樹,即其左孩子小於父結點,而父結點又小於或等於右孩子。
  • 每個BinaryTreeNode物件要維護一個指向結點所儲存元素的引用,另外還要維護指向結點的每個孩子的引用。
  • 從二叉查詢樹中刪除一個元素時,必須推選出另一個結點來代替要被刪除的那個結點。
  • 二叉查詢樹的最右側結點會存放最大元素,而其最左側結點會存放最小元素。
  • 樹的主要作用之一就是為其他集合提供高效的 實現。
  • 如果二叉查詢樹不平衡,其效率可能比線性結構還要低。
  • 右子樹的高度減去左子樹的高度稱為
  • 廣義樹:對結點所含有的孩子數目無限制的樹。
  • n元樹:每一結點不超過n個孩子的樹。(結點最多具有兩個孩子的樹稱為二叉樹)
  • 樹的平衡:樹的所有葉子都位於同一層或者至少是彼此相差不超過一個層,就稱之為是平衡的。
  • 完全樹:如果某樹是平衡的,且底層所有的葉子都位於樹的左邊,則認為該樹是完全樹。
  • 如果一棵n元樹的所有葉子都位於同一層且每一結點要麼是一片葉子要麼正好具有n個孩子,則稱此樹是滿的。
  • 樹的遍歷
  • 前序遍歷:從根節點開始,訪問每一結點及其孩子。
  • 中序遍歷:從根節點開始,訪問結點的左孩子,然後是該結點,再然後是任何剩餘結點。
  • 後序遍歷:從根結點開始,訪問結點的孩子,然後是該結點的孩子,然後是該結點。
  • 層序遍歷:從跟結點開始,訪問每一層的所有結點,一次一層。

    教材學習中的問題和解決過程

  • 問題1:如何建立一個泛型方法

  • 問題1解決方案:建立一個泛型方法,需在方法頭的返回型別前插入一個泛型宣告
    例:
public <T> T genericMethod(Class<T> tClass)throws InstantiationException ,
  IllegalAccessException{
        T instance = tClass.newInstance();
        return instance;
}

程式碼除錯中的問題和解決過程

  • 問題1:
  • 問題1解決方案:

程式碼託管

上週考試錯題總結

  • A node that does not have a parent is called the ______ of a tree.
    A .foot
    B .root
    C .leaf
    D .top
    錯誤:A 正確:B
    解析:沒有父結點的是根結點。

結對及互評

  • 本週結對學習情況
    • 20172311
    • 對課本上的諸多疑問點進行了討論,同時對程式碼實現過程中遇到的一些問題也通過討論得以解決。
  • 上週部落格互評情況

學習進度條

程式碼行數(新增/累積) 部落格量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 0/0 1/1 6/6
第二週 612/612 1/2 18/24
第三週 516/1128 1/3 16/40
第四周 702/1830 2/5 16/56
第五週 1926/3756 1/6 18/74
第六週 948/4304 1/7 18/92

參考資料