方法一:
此方法適用條件:
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次比較,為陣列長度減一。經過第一輪的比較能夠將陣列中最大的那個數找出且放到最後一位,此時進行第二輪比較原...