建樹的幾種常用方法

2021-10-09 22:59:29 字數 1054 閱讀 2190

方法一:

此方法適用條件:

1.當我們遍歷這顆樹時只需要從父節點查詢到子節點,不需要從子節點查詢到父節點.

2.所建樹為一顆二叉樹

實現**:

class

tree

根據題目描述進行輸入.

如依次輸入 節點編號 節點權值 左兒子編號 右兒子編號 連線左兒子的邊的權值 連線右兒子邊的權值

for

(int i=

1;i<=n;i++

)//n代表節點的個數

方法二:此方法適用條件:

1.當我們遍歷這顆樹時只需要從父節點查詢到子節點,不需要從子節點查詢到父節點.

2.此方法彌補了方法一的乙個不足,方法乙隻適用於二叉樹,不適用於有多個子節點的樹,而此方法可以可以有多個子節點

實現**:

void

add(

int a,

int b)

相信看到這**有點暈,當初我也是,看看下面的查詢的過程

我們在看看它的儲存結構,我們按輸入的順序給節點排隊,假設存在這樣一顆樹

數字代表輸入的順序,我們展示一下樹右邊是如何聯絡起來的(cnt代表的是輸入順序並不是點真正的編號,edge[cnt]才是點真正的編號)

故可得查詢**

for

(int i=last[a]

;i>=

1;i=ne[i]

)

持續更新!

同步的幾種常用方法

最簡單的執行緒同步的例子 本文,旨在 幾種常用的同步的方法 本文的同步指對於一點程式乙個時間點只有乙個程式在執行,必須乙個執行完了,另乙個才能執行。1.物件同步 同一例項 成員方法同步 public class mytestthread extends thread catch interrupte...

幾種常用的排序方法

幾種常用的排序方法 1.氣泡排序 氣泡排序演算法的運作如下 比如按從小到大排列 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作第一步中的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的...

幾種常用的排序方法

1 氣泡排序,原理 依次比較相鄰的兩個值,如果後面的比前面的小,則將小的元素排到前面。依照這個規則進行多次並且遞減的迭代,直到順序正確。因為是兩個相鄰的數進行比較,剛開始進行第一輪比較時總共進行6次比較,為陣列長度減一。經過第一輪的比較能夠將陣列中最大的那個數找出且放到最後一位,此時進行第二輪比較原...