在學習各種樹的算法以及應用時,讓我們先來學習一下樹的相關概念。
✨1.1 結點的度在樹中,結點的度表示結點擁有的子樹的數目,即結點有幾顆子樹,該結點就有幾度。
下面來看圖理解下。
在上圖中,結點 A 有兩棵子樹,分别是 B 和 C,所以 A 的度為 2,B 有三棵子樹,所以 B 的度為 3,同理,C 的度為 1,D 的度為 0。
✨1.2 葉子/終端結點葉子結點是指度為 0 的結點,也稱終端結點。
下面來看一個例子,如下所示:
上圖中,紅色結點 D、E、F、G 都是葉子結點/終端結點,因為它們都沒有子樹,度為 0。
✨1.3 非終端結點/分支結點非終端結點是指度非 0 的結點,又稱分支結點。
下面來看圖理解下,如下所示:
在上圖中,紅色結點 A 、B、C 都是分支結點,因為它們的度都是大于 0 的。
✨1.4 分支分支是指父子結點之前的連接,二叉樹最多有兩個分支,這兩個分支是父節點分别與左孩子和右孩子各有一個分支。來看圖理解下,以二叉樹為例。
在上圖中,分支都被标識了出來。
✨1.5 路徑路徑是指樹中任意一個結點到另外一個結點之前的分支組成的鍊路。
在上圖中,标出了兩條路徑,分别是紅色:A-B-D,紫色:G-C-F。
✨1.6 路徑長度路徑長度是指在路徑上的分支數目。
經常會有題目涉及求兩個結點之前的路徑長度。
✨1.7 樹的路徑長度從樹根到每一個結點的路徑長度的總和。
上圖中,根結點 A 到其它節點 B、C、D、E、F、G的路徑長度分别為:1 、1、2、2、2、2,所以樹的總長度為 :1 1 2 2 2 2 = 10。
再來看一個例子,如下所示:
在上圖中,根結點 A 到其它結點 B、C、D 的路徑長度分别為:1、1、2,所以樹的路徑長度為:4。
✨1.8 樹的帶權路徑長度樹的帶權路徑長度是指樹中所有葉子結點的帶權路徑長度之和,使用如下公式計算:
其中,
為葉結點 k 的權值,
為葉結點 l 的路徑長度。
來看一個實例,如下所示:
在上圖中,葉結點分别為:D、E、F、G,其權值分别為:2、3、3、4,路徑長度都為 2,所以樹的帶權路徑長度:
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!