iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0
Software Development

資料結構 - 我好想懂阿!30 天系列系列 第 15

資料結構 - 我好想懂阿!30 天系列 (15) - Extended Binary Tree

  • 分享至 

  • xImage
  •  

前言

Extended BT,是在我們進入下一章節前 (Huffman algo) 的先備知識,所以先扎根,我們再來往上長!

定義

先來看 Extended 的定義,在一棵二元樹內,我們將原所有 null 的子樹,全部替換成外部點(External nodes),而我們稱其他的點就為 internal node
https://ithelp.ithome.com.tw/upload/images/20220929/20151910lxAKttN7rG.png
注意看上圖,可以得出 External node = internal node + 1

E=I+2N 定理

在 Extended Binary Tree,有一個我們必須要知道的定理也就是 E=I+2N,我們令
I : 內部各 Node 路徑長的加總
E : 外部各 Node 路徑長的加總
N : Internal node 個數

我們利用數學歸納法來證明

  1. 當 N = 0 的時候,I =0,so E = 0
  2. 令 N ≤ n-1 時,此式子皆成立
  3. 當 N = n 時,將此 B.T 拆成左右子樹

左子樹之內部結點路徑長加總為https://chart.googleapis.com/chart?cht=tx&chl=%24I_%7BL%7D%24%20%20 ,節點總數https://chart.googleapis.com/chart?cht=tx&chl=%24n_%7BL%7D%24
右子樹之內部結點路徑長加總為https://chart.googleapis.com/chart?cht=tx&chl=%24I_%7BR%7D%24 ,節點總數https://chart.googleapis.com/chart?cht=tx&chl=%24n_%7BL%7D%24
而此 B.T 之 https://chart.googleapis.com/chart?cht=tx&chl=%24I%3DI_%7BL%7D%2BI_%7BR%7D%2Bn_%7BL%7D%2Bn_%7BR%7D%24 對於真實的 root 來說每個 path 都+1 形成了 nl, nr
https://chart.googleapis.com/chart?cht=tx&chl=%24%5Cred%20%7BE%3DE_%7BL%7D%2BE_%7BR%7D%2B(n_%7BL%7D%2B1)%2B(n_%7Br%7D%2B1)%7D%24
而我們已知當 N ≤ n-1 的時候式子成立,而左右子樹之 Node 數也 ≤ n-1
所以 https://chart.googleapis.com/chart?cht=tx&chl=%24E_%7BL%7D%3DI_%7BL%7D%2B2n_%7BL%7D%2C%5C%20%5C%20%20E_%7Br%7D%3DI_%7Br%7D%2Bn_%7Br%7D%24%20
代入上式可得 https://chart.googleapis.com/chart?cht=tx&chl=%24E%3DI_%7BL%7D%2B2n_L%2BE_R%2B2n_R%2Bn_L%2Bn_r%3D(I_L%2Bn_L%2BI_R%2Bn_R)%2B2(n_L%2Bn_r%2B1)%3DI%2B2n%24
得證


上一篇
資料結構 - 我好想懂阿!30 天系列 (14) - SMMH
下一篇
資料結構 - 我好想懂阿!30 天系列 (16) - Huffman Algo
系列文
資料結構 - 我好想懂阿!30 天系列30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言