heap

    0

    1答えて

    MinHeapの右にメモを挿入するコードを取得した後、ノードの左の子に優先順位を付けたい場合、どのような変更が必要なのか混乱します。ヒープを並べ替える。 I 5 //insert number 5 in the Min Heap I 4 I 3 I 2 I 1 、出力は次のようになります:代わりに通常の 1 2 3 4 5 :この出力に取得する方法について 1 2 4 5 3

    1

    3答えて

    私は最大ヒープの途中から特定の要素を削除するスカイライン問題を解決するアルゴリズムを実装しようとしています。私が現在やっているのはmaxheap.remove(index)ですが、私はheapify(maxheap)をフォローアップしなければなりません。私はあなたがそれを行うtreemapのような何かを使用することができますJavaで知っている。とにかく、それはO(n)時間かかる各別のメソッドを呼

    -1

    1答えて

    私はC++クラスのバイナリの最大ヒープを作成しています。この例外が発生しても、クラスメソッドでnullptrが返されています。私はコード内でどこにあるのかを見つけるのが難しいので、どんな助けでも大歓迎です。次のように投げ続ける例外は次のとおりです。 Unhandled exception thrown: read access violation. **std::_String_alloc<st

    0

    1答えて

    少し助けてもらえます。したがって、heapsizeは配列内の要素の数として宣言されます。データは配列です。なぜheapsize ++をやるの? maxSizeは、配列のサイズとして宣言されます。ヒープに要素を追加すると、最後の位置に移動します。なぜheapsizeを最初に増やし、heapsizeが最後の空の位置になるので、単にデータをheapsizeに入れないでください。ありがとう! public

    -3

    1答えて

    heapSortアルゴリズムを動作させることができないため、数時間前から頭を引っ張ってきました。私のビルドマックス・ヒープとmax-heapifyは、正しいコードを出力し、その後、私はあなたが からスタートアルゴリズムにCormenのイントロでヒープソートのアルゴリズムに従う(I = A.lengthを2に下ります) then exchange A[1] with A[i] decrea

    1

    1答えて

    Dijkstraの優先順位キューをminヒープとして実装するのが最善の場合はどのような場合ですか? 実行時間はO(V^2 + E)で、もう1つはO((V+E)logV)です。ときE< Vので、ヒープの実装が良いと再び思えるときV< E、O(V^2 + E)= O(E^2)とO((V+E)logV) = O(ElogV)、その後、 O(V^2+E) = O(V^2)、それはO((V+E)logV)=

    0

    2答えて

    私はいくつかのコードを生成するアプリケーションで作業していますが、速度は問題ではありませんが、メモリリークは望ましくありません。 ガベージコレクタで他の言語から来たshared_ptrと少し混乱しています。 基本的には、すべてのポインタにshared_ptrを使用するとガベージコレクタと同様の動作をしますが、オブジェクトが参照されなくなったときにそのオブジェクトをremvoveするため、正しく理解

    1

    1答えて

    この問題を視覚化するのに問題があります。 私は有向グラフを持っています。 Dijskraのアルゴリズムを使ってこのグラフをスキャンし、最短経路を印刷する必要があります。私はヒープ/プライオリティキューを使用しなければなりません、そして、私の現在の知識から、私はこれらが同じことであることを知っています。 ただし、グラフは2つ以上の子を持つことができ、ヒープは2つの子ノードしか持つことができません。こ

    0

    1答えて

    ソート順に進む必要があるオブジェクトがたくさんあります。 SplHeap、SplMaxHeap、SplMinHeapの2つのサブクラスが見つかりましたので、私はそれらを実験として使用しようと考えていました。コメントでは、SplPriorityQueuementionedも読んでいます。 しかし、それらを試した後、3つのヒープの違いは何か、そしてヒープとキューの選択方法はちょっと分かりません。ここで

    0

    2答えて

    上のポインタの配列を割り当てる いXのオブジェクトのための領域を割り当てる?:私は、ヒープ上のx Vector3Dオブジェクトのためのスペースを持つ配列を構築する必要があり Vector3D* binArray = new Vector3D[size]; 単純X新しいオブジェクトを作成、または以下。しかし、Vector3Dオブジェクトは、「add」関数が呼び出されたときにのみ作成できます。これ