20172315 2018-2019-2 《程序設計與數據結構》第七週學習總結

20172315 2018-2019-2 《程序設計與數據結構》第七週學習總結

教材學習內容總結

  • 二又查找樹是一種含有附加屬性的二又樹,即其左孩子小於父結點,而父結點又小於或等於右孩子。
  • 每一個BinaryTreeNode對象要維護一個指向結點所存儲元素的引用,另外還要維護指向結點的每一個孩子的引用。
  • 從二又查找樹中刪除一個元素時,必須推選出另外一個結點來代替要被刪除的那個結點。
  • 二又查找樹的最右側結點會存放最大元素,而其最左側結點會存放最小元素。
  • 若是二又查找樹不平衡,其效率可能比線性結構的還要低。
  • 右子樹的高度減去左子樹的高度稱爲該結點的平衡因子。
  • 樹(或樹的任何子樹)只有兩種途徑能變得不平衡:插入結點或刪除結點。
  • 紅黑樹
    根結點爲黑色。
    紅色結點的全部孩子都爲黑色。
    從樹根到樹葉的每條路徑都包含一樣數目的黑色結點。

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

  • 問題1:書上講的紅黑樹不太理解
  • 問題1解決方案:在藍墨雲上找到老師推薦的網站加深理解
    紅黑樹(Red-Black Tree,簡稱R-B Tree),它一種特殊的二叉查找樹。
    紅黑樹是特殊的二叉查找樹,意味着它知足二叉查找樹的特徵:任意一個節點所包含的鍵值,大於等於左孩子的鍵值,小於等於右孩子的鍵值。
    除了具有該特性以外,紅黑樹還包括許多額外的信息。

紅黑樹的每一個節點上都有存儲位表示節點的顏色,顏色是紅(Red)或黑(Black)。
紅黑樹的特性:php

(1) 每一個節點或者是黑色,或者是紅色。html

(2) 根節點是黑色。git

(3) 每一個葉子節點是黑色。 [注意:這裏葉子節點,是指爲空的葉子節點!]web

(4) 若是一個節點是紅色的,則它的子節點必須是黑色的。數據結構

(5) 從一個節點到該節點的子孫節點的全部路徑上包含相同數目的黑節點。學習

關於它的特性,須要注意的是:
第一,特性(3)中的葉子節點,是隻爲空(NIL或null)的節點。
第二,特性(5),確保沒有一條路徑會比其餘路徑長出倆倍。於是,紅黑樹是相對是接近平衡的二叉樹。網站

紅黑樹示意圖以下:.net

參考資料
資料
參考文獻設計

  • 問題2:書上的avl樹沒法理解
  • 問題2解決方案:在網上查詢資料:平衡二叉樹定義(AVL):它或者是一顆空樹,或者具備如下性質的二叉樹:它的左子樹和右子樹的深度之差(平衡因子)的絕對值不超過1,且它的左子樹和右子樹都是一顆平衡二叉樹。

平衡因子(bf):結點的左子樹的深度減去右子樹的深度
資料3d

代碼調試中的問題和解決過程

(statistics.sh腳本的運行結果截圖)

上週考試錯題總結

上週無錯題~

結對及互評

點評模板:

  • 博客中值得學習的或問題:
    • 博客中圖片過少
    • 對於教材內容解析很到位
  • 代碼中值得學習的或問題:
    • 代碼簡潔明瞭
    • 代碼不太規範,註釋過少

點評過的同窗博客和代碼

  • 本週結對學習狀況
    • 20172318
    • 結對學習內容
      • 第十一章
  • 上週博客互評狀況

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 0/0 0/0 0/0
第二週 800/800 2/2 18/18
第三週 600/1400 3/5 22/40
第四周 700/1300 3/8 22/62
第五週 400/1700 3/11 22/84
第六週 200/1900 2/13 20/94
第七週 400/2300 2/15 20/114

參考資料

相關文章
相關標籤/搜索