iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 22
0
自我挑戰組

學習資料結構30天系列 第 22

[Data Structure][Tree] - Balanced Search Tree

  • 分享至 

  • xImage
  •  

前言

  • 對一般的Binary Search Tree進行查詢、新增、刪除節點,所花費的時間會和Tree的height成正比,卻不會與Tree有幾個節點數量成正比。
  • 在不平衡的樹中(ex:偏移樹),要尋找目標節點,需要花費很長的時間。

所以,今天要講進化過的Binary Search Tree -> Balanced Search Tree

平衡樹 Balanced Search Tree

主要目標 : 讓所有節點的高度都是O(log n)

|左子樹和右子樹的高度相減| <= 1
左子樹和右子樹必須是平衡樹

  • 不平衡的Tree
    https://ithelp.ithome.com.tw/upload/images/20181105/20112438pTe0cfUYo7.jpg
  • 平衡的Tree
    https://ithelp.ithome.com.tw/upload/images/20181105/20112438OFOpPmVYUj.jpg

旋轉 Rotate

不破壞Search Tree的左小右大特性,透過將Tree旋轉,讓其能趨近平衡。

  • Rotate 又分為 Right rotationLeft rotation

https://ithelp.ithome.com.tw/upload/images/20181105/20112438fAY3jft4UA.jpg <=>https://ithelp.ithome.com.tw/upload/images/20181105/20112438tTlBGv7Rno.jpg


上一篇
[Data Structure][Tree] - Binary Search Tree &Heap
下一篇
[Data Structure] - Hash Table
系列文
學習資料結構30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言