シンプルな基本的なJava疑似コードでヒープデータ構造を7つの数値で初期化するにはどうすればよいですか?ヒープデータ構造の初期化java
-3
A
答えて
1
あなたはJavaの優先度つきキューを使用して、それを自分でやるとしないようにしたいならば、あなたは彼らがヒープのプロパティを守るように、適切な場所で、すべてのX項目を配置する必要があります:
//This will switch the current item with it's greatest child, if this child is
//larger than the current item itself.
private void percolateDown(int i){
//Get n's greatest child. The two children are at position 2i+1 and 2i+2
int n = getGreatestChild(i);
//Don't do anything if the greater child is smaller or equal to the parent
if(yourNumbersArray[n] <= yourNumbersArray[i])
return;
//Now switch the parent with the greatest child
//Make sure that the newly placed item is at the right spot by percolating it again.
percolateDown(n);
}
private void initialize(){
//Call the percolateDown() function for all items of your array.
//Due to the heap nature you can leave out the second half, though.
int mid = yourNumbersArray.length/2;
//Start in the middle and work your way towards the front.
//This way you'll first sort the lowest level of your heap, then the second lowest, and so on.
for(; mid>=0; --mid){
percolateDown(mid);
}
}
任意の項目の最大の子を探して一方または両方の子供があなたの配列の外にいる可能性があることを覚えておく必要があります。この場合、もちろんそれを考慮する必要はありません。
0
PriorityQueue。ヒープDSとして実装されています。
次に、単にqueue.add(yourObject)を使用して追加します。
デフォルトでは自然順序付けが使用されます。他にも独自のものを使用する場合は、Comparatorを使用します。
関連する問題
- 1. ヒープデータ構造の実装の迅速化
- 2. デフォルトネスト構造の初期化
- 3. ヒープデータ構造のラップアラウンド問題
- 4. 構造内のポインタメンバーの初期化
- 5. クラスオブジェクトの構造体の初期化
- 6. 構造体の初期化の問題?
- 7. 構造体内のユニオンの初期化
- 8. 空のノード構造のJNA初期化
- 9. 構造内のベクトルの初期化
- 10. C++での構造体の初期化
- 11. 構造体と配列の初期化
- 12. 構造体内の初期化値
- 13. 構造体変数の初期化エラー。
- 14. C++定数構造体の初期化
- 15. C++構造体の初期化方法
- 16. 構造体配列のポインタ初期化
- 17. 構造体のメンバを初期化
- 18. 入れ子構造体の初期化
- 19. C構造体の遅延初期化
- 20. C構造体、構造体へのポインタ、適切な初期化
- 21. 構造体内の構造体を初期化する
- 22. uncrustify、c、構造体初期化メンバ
- 23. 構造体を初期化する
- 24. 構造体の初期化時にstruct内部で構造体を静的に初期化する
- 25. Cの構造体自動初期化値、配列の初期化
- 26. 内部構造体を外部構造体初期化で定数として初期化する
- 27. ゴランの次の構造体の構造体を初期化する方法
- 28. 構造体の構造体の配列を初期化する方法は?
- 29. は、私は、この構造体を持つ構造体の初期化
- 30. C++構造体のポインタを持つ構造体を初期化するには、
Java擬似コードとは何ですか? Javaコードまたは擬似コードが必要ですか?これまでに何を試してみましたか?これは宿題ですか?その後、宿題にタグを付けます。 – taskinoor