資料結構課程.PPT

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
資料結構課程

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 6-6.5 最小-最大堆積樹中刪除節點? 【規則】 1. 刪除根節點 2. 在左右子樹中選擇最後一個節點來補位 3. 尋找根節點以下的最小鍵值與根節點交換 4. 進行調整? 【題目】請在下列的最小-最大堆積樹中,刪除一個節點10 6-6.5 最小-最大堆積樹中刪除節點(續)? 步驟一:刪除10 步驟二:選擇最後一個節點來補位 6-6.5 最小-最大堆積樹中刪除節點(續)? 步驟三:尋找根節點以下的最小鍵值與根節點交換(55與12交換) 步驟四:進行調整(55與50交換) 交換 最小鍵值 根節點 交換 交換 交換 6-7 高度平衡樹 ( AVL Tree ) 在前面章節中所介紹的二元搜尋樹,如果左子樹與右子樹的高度能夠維持在平衡的情況時,則其搜尋時間會減低。因此,在本單元中將介紹AVL Tree的平衡樹,就是調整二元搜尋樹的左右子樹的高度,來達到二元樹的平衡,因此,我們將AVL Tree又稱為高度平衡二元搜尋樹。 基本上,AVL樹必須要合乎下列兩個條件: 1.是一種二元搜尋樹。 2.高度須保持平衡狀態。 【定義】為一棵高度平衡的二元搜尋樹,可以為空,若不為空, 則必須滿足以下兩個條件: 1. 左子樹(TL)和右子樹(TR)都是高度平衡樹。如下圖所示。  2. 左、右子樹的高度差必須要小於或等於1。 其中 hL 和 hR 分別為 TL 和 TR 的高度。 6-7.1 平衡因子(Balance Factor) 【定義】在二元樹中,一個節點 T 的平衡因子 ( Balance Factor ;BF) 的定義為 hL - hR ,其中hL和hR?分別為節點T的左子樹和右子 樹的高度。對 AVL 樹中的任一節點 T 而言,BF(T)=0,-1或1 等三種情況。如下圖所示。 第一種情況BF(T)=1 第二種情況BF(T)=-1 第三種情況BF(T)=0 在上圖中,每一個內部節點的左子樹與右子樹的高度相差最多是1,因此是AVL樹。 【不是AVL樹情況】 在上圖中,因為節點A的左子樹的高度為3,右子樹的高度為1,所以相差2。 hL - hR = hR =1 hL=3 6-7.2 AVL 樹的不平衡點調整 之四種型式 我們在進行AVL樹的加入與刪除動作時,往往會造成不平衡狀態, 因此,我們必須要加以調整,最後必須要保持平衡狀態。 我們將不平衡狀態分為四種: (一) LL型(Left-Left) (二)RR型(Right-Right) (三) LR型(Left-Right) (四)RL型(Right-Left) 【調整原則】 LL, LR, RL, RR標線牽涉到三個節點。而三個節點中,將中間鍵值往上拉,小的放左邊,大的放右邊。 (一) LL型(Left-Left) (二)RR型(Right-Right) (三) LR型(Left-Right) (四)RL型(Right-Left) (一)LL型(Left-Left) 1.新節點C加入到節點B的左子樹 2.將中間鍵值(B節點)往上拉,小(C節點)的放左邊,大(A節點)的順時 針旋轉後,放右邊。 【實例】 (2)RR型(Right-Right) 1.新節點C加入到節點B的右子樹 2.將中間鍵值(B節點)往上拉,大的放右邊(C節點),小的逆時針旋轉後,放左邊(A節點)。 【實例】 (3)LR型(Left-Right) 1.新節點C要被加入到A節點的左兒子(B節點)的右子樹 2.將中間鍵值(C節點)往上拉,小的放在C節點的左邊,大的放在C 節點的右邊。 【實例】 (4)RL型(Right-Left) 1.新節點C要被加入到A節點的右兒子(B節點)的左子樹 2.將中間鍵值(C節點)往上拉,小的放在C節點的左邊,大的放在C 節點的右邊。 【實例】 6-7.3 AVL Tree 之平衡調整步驟 【作法】 1. 找出關鍵路徑,計算路徑上每一個節點的平衡因子。 2. 從樹根開始,找到最後一個平衡因子為 ?2 以上的節點, 稱之為關鍵節點。 3. 決定調整方式

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档