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

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

教材學習內容總結

第十章

二叉查找樹

1.二叉查找樹是一種含有附加屬性的二叉樹,即其左孩子小於父結點,父結點小於或等於右孩子數據結構

2.一棵由n個結點隨機構造的二叉查找樹的高度爲lgn,因此瓜熟蒂落,二叉查找樹的通常操做的執行時間爲O(lgn)。但二叉查找樹若退化成了一棵具備n個結點的線性鏈後,則這些操做最壞狀況運行時間爲O(n)學習

操做                          說明                              

    addElement                往樹中添加一個元素                      

    removeElement             從樹中刪除一個元素                      

    removeAllOccurrences      從樹中刪除所指定元素的任何存在            

    removeMin                 刪除樹中的最小元素                        

    removeMax                 刪除樹中的最大元素                       

    findMin                   返回一個指向樹中最小元素的引用            

    findMax                   返回一個指向樹中最大元素的引用

3.鏈表實現二叉查找樹:每一個BinaryTreeNode中的對象要維護一個指向結點存儲元素的引用,還要維護指向結點的每一個子樹的引用字體

平衡二叉樹(AVL樹)

1.自己首先是一棵二叉查找樹。帶有平衡條件:每一個結點的左右子樹的高度之差的絕對值(平衡因子)最多爲1。設計

紅黑樹

1.本質上是一棵二叉查找樹,但它在二叉查找樹的基礎上增長了着色和相關的性質使得紅黑樹相對平衡,從而保證了紅黑樹的查找、插入、刪除的時間複雜度最壞爲O(log n)調試

2.根結點爲黑色。code

3.每一個葉子結點(null)是黑色。對象

4.從樹根到樹葉的每條路徑都包含有一樣數目的黑色結點(黑鍵數)。rem

5.若是一個結點的顏色爲紅色,那麼它的子結點一定是黑色。input

6.在紅黑樹中,元素的查找仍然是一種O(n)操做,因爲紅色結點不能有紅色孩子,因而路徑中至多有一半結點時紅色結點、至少有一半結點是黑色結點,據此咱們能夠論證紅黑樹的最大高度約爲2*logn,因而遍歷最長路徑的序仍然是logn。(即最長遍歷路徑相同。)博客

樹的旋轉

1.添加或刪除紅黑樹中的節點以後,紅黑樹就發生了變化,可能不知足紅黑樹的5條性質,也就再也不是一顆紅黑樹了,而是一顆普通的樹。而經過旋轉,可使這顆樹從新成爲紅黑樹。簡單點說,旋轉的目的是讓樹保持紅黑樹的特性。

2.當一棵樹的最大路徑長度大於log2^n,或最小路徑長度小於log2^n-1時,就要平衡化該樹。當左子樹過長,則對左子樹進行右旋,若右子樹過長,則對右子樹進行左旋。若左子樹的右子樹過長,進行左右旋。若右子樹的左子樹過長,進行右左旋。對X進行左(右)旋,意味着"將x變成一個左(右)節點"。

樹的插入

1.對於平衡樹插入後不平衡的狀況,通旋轉使樹達到平衡。

2.在討論紅黑樹的插入操做以前必需要明白,任何一個即將插入的新結點的初始顏色都爲紅色。這一點很容易理解,由於插入黑點會增長某條路徑上黑結點的數目,從而致使整棵樹黑高度的不平衡。但若是新結點父結點爲紅色時(以下圖所示),將會違返紅黑樹性質:一條路徑上不能出現相鄰的兩個紅色結點。這時就須要經過一系列操做來使紅黑樹保持平衡

3.紅黑樹插入元素後,先旋轉爲平衡二叉樹,然後根據紅黑樹的五條性質對結點進行染色。

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

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

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

  • 問題1:在作藍墨雲實驗的時候,創立了input文件後始終出現filenotfound的異常。

  • 問題1解決方案:詢問了趙乾晨同窗後,發現本身的input文件始終沒有標註位置。

碼雲連接

結對及互評

博客中值得學習的或問題:

  • 博客排版工整,界面很美觀,而且本週還對博客排版、字體作了調整,很用心
  • 問題總結作得很全面:對課本上不懂的代碼會作透徹的分析,即使能夠直接拿過來用而不用管他的含義

本週結對學習狀況

  • 20172315
  • 20172318

結對學習內容

  • p11.3 pp11.8
  • 紅黑樹

參考資料

相關文章
相關標籤/搜索