樹的父指標表示法(並查演算法 重量權衡合併規則 路徑壓縮)
阿新 • • 發佈:2019-01-22
樹的父指標表示法:對於樹中的每個結點都儲存一個指標域指向父結點。(缺點:不能準確地找到給定的結點的子結點資訊。優點:可以解決判斷倆個結點是否在同一個樹中的問題;用並查演算法合併倆個集合。)
並查演算法:如果倆個結點在同一棵樹,則判斷為同一集合。
實現:
無 | 0 | 0 | 1 | 1 | 1 | 2 |
R | A | B | C | D | E | F |
等價類的不相交子集的合併:--->>重量權衡合併規則及壓縮路徑的實現
等價類:參考離散數學中的對等價關係的定義。
列:
給出下列的等價關係圖,畫出以不同規則得出的樹狀圖。
解答:
1.重量權衡合併規則(表格第一行的陣列代表父結點在陣列中的值)
a:
無 | 無 | 無 | 無 | 無 | 無 | 無 | 無 | 無 | 無 |
A | B | C | D | E | F | G | H | I | J |
b:
無 | 0 | 無 | 無 | 3 | 無 | 5 | 2 | 5 | 無 |
A | B | C | D | E | F | G | H | I | J |
c:
無 | 0 | 0 | 5 | 3 | 無 | 5 | 2 | 5 | 無 |
A | B | C | D | E | F | G | H | I | J |
d:
5 | 0 | 0 | 5 | 3 | 無 | 5 | 2 | 5 | 無 |
A | B | C | D | E | F | G | H | I | J |
2.壓縮路徑
即把重量權衡合併規則的C步驟中的(H.E)等價對做如下處理:
5 | 0 | 0 | 5 | 5 | 無 | 5 | 0 | 5 | 無 |
A | B | C | D | E | F | G | H | I | J |
總結:既然叫做等價對,就是依次把相鄰的倆個樹(一個結點也代表一棵樹)關係合併成一顆樹。重量權衡的核心是比較倆顆樹的結點數目,較少數目的樹的根節點以較多數目的樹的根節點為父結點;而路徑壓縮核心即是當產生高度為3 的樹時,最深結點指向根結點,再合併。
時間複雜度的分析:
無 | 無 | 無 | 無 | 無 | 無 | 無 | 無 | 無 | 無 |
A | B | C | D | E | F | G | H | I | J |
無 | 無 | 無 | 無 | 無 | 無 | 無 | 無 | 無 | 無 |
A | B | C | D | E | F | G | H | I | J |
無 | 無 | 無 | 無 | 無 | 無 | 無 | 無 | 無 | 無 |
A | B | C | D | E | F | G | H | I | J |