以下に示すように:
Java.util.arrays; //小さな上部のヒープのコードはパブリッククラスのヒープを実装します{//下向きに調整します。上部の最大値は下がっています。これは主にヒープを削除して構築するために使用されます。私は調整するノードインデックスを表し、nはヒープの最も要素インデックスを表します。//削除の場合、iは0です。ヒープを構築するとき、私は最後のノードのパブリックvoid feddown(int [] data、int i、int n){int num = data [i]; int son = i * 2 + 1; data [son])son ++; if(num <data [son])break; data [i] = data [son]; i = son; son; son = i * 2+1;}データ= num;} //上向きに調整し、上向きになり、上向きになるには上向きに調整すると、トップインデックスの設定は必要ありません。 -1)/ 2; //データ[父]> numは、ループを入力するための基本的な条件です。父親が0に減少した場合、nが0に等しい場合、父親= 0に減少しません。死んだループに入るので、n == 0の場合、ループから飛び出す必要があります(データ[父]> num && n!= 0){data [n] = data [父]; n =父;父;父=(n -1)/ 2;} data [n] = num;} // delete、nは、neap public void delete [int int int in delete int int in defetic void deleteのインデックスを表します。 data [n]; data [n] = -1; fiddown(data、0、n -1);} //増加、nは追加する数字を表し、nは追加する位置のインデックスを表します。 public static void creat(int [] data、int n){for(int i =(n -1)/ 2; i> = 0; i-)feddown(data、i、n);} public static void main(string [] args){int [] data = {15、13、1、5、20、12、8、9、11}; 1); system.out.println(arrays.tosttring(data)); // test delete(data、data.length -1); delete(data、length -2); system.out.println(arrays.tostring(data));Java実装のヒープ操作に関する上記の記事(ビルディングヒープ、挿入、削除)は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。