/**
* 功能: 完成 將 以 i 對應的非葉子結點的樹調整成大頂堆
* 舉例 int arr = ; => i = 1 => adjustheap => 得到
* 如果我們再次呼叫 adjustheap 傳入的是 i = 0 => 得到 =>
* @param arr 待調整的陣列
* @param i 表示非葉子結點在陣列中索引
* @param lenght 表示對多少個元素繼續調整, length 是在逐漸的減少
*/public static void adjustheap(int arr, int i, int lenght)
if(arr[k] > temp) else
}//當for 迴圈結束後,我們已經將以i 為父結點的樹的最大值,放在了 最頂(區域性)
arr[i] = temp;//將temp值放到調整後的位置
}
將乙個陣列變成二叉樹
二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作 左子樹 和 右子樹 比如陣列 int array 變為二叉樹為 分析 1 首先要定義每乙個結點,每乙個結點包括自身值,左結點和右結點,實現get set方法。public class node public node int data,node...
判斷乙個二叉樹是另乙個二叉樹的子樹
輸入兩棵二叉樹a和b,判斷b是不是a的子結構。該方法是在a樹中找到乙個與b樹的根節點相等的元素的結點,從這個相等的結點開始判斷樹b是不是樹a的子結構,如果找到其的乙個就返回,否則直到所有的結點都找完為止。param root1 樹a的根結點 param root2 樹b的根結點 return tru...
將乙個陣列追加到別乙個陣列
問題 將乙個陣列追加到別乙個陣列 方案 1 使用array merge 在使用這個合併陣列時如果使用數字鍵,那麼索引會重新編號.如果使用字串鍵,則會導致第二個陣列中的鍵 覆蓋第乙個陣列中的同名鍵 此時第乙個陣列中的值也就消失了 如果是兩種鍵則會表現出上述兩種特徵.r array 1 2 dd 3 4...