min-heap

    1熱度

    1回答

    假設您有一個C++程序,必須從給定的.txt文件中讀取文本。該程序將: 文件中的每個字符,然後每個唯一字符(和它的頻率)的出現計算數目將被存儲爲一個新的樹節點 然後,程序將生成一個包含一個最小堆這些節點,然後使用這個最小堆構建霍夫曼代碼樹。 遍歷(預購和按順序)將被寫入輸出文件。樹的每個內部節點都將具有標籤I:xxx,其中xxx是int標籤,並且葉子具有L:xxx 程序最終構造一個表,其中包含每個

    2熱度

    6回答

    什麼會爲下面的函數遞歸版本會是這樣: void tri_loop(size_t i, size_t j, size_t k) { for(size_t x = 0; x < i; ++x) for(size_t y = 0; y < j; ++y) for(size_t z = 0; z < k; ++z) { cout << x

    4熱度

    2回答

    功能1 void min_heapify(int arr[],int n, int i){ int j, temp; temp = arr[i]; j = 2 * i; while (j <= n) { if (j < n && arr[j+1] < arr[j]) j = j + 1; if (temp <

    -1熱度

    1回答

    我是堆和PQ概念的新手。所以我試圖使用PQ使用最小堆實現堆棧。 我想實現以下方法: 彈出 彈出 的isEmpty 頂部 大小 下面是代碼: import java.util.*; import java.lang.System; public class StackUsingMinPriorityQueue{ static int a[] = {3,7,2,11,9,4};

    2熱度

    1回答

    考慮以下示例。我將隨機數添加到最小堆中,同時我將相同數字以相同順序添加到最大堆中。所以最後這兩堆將有相同的數字,其中一個是最小堆,另一個是最大堆。 現在,這裏的問題: 如果我決定從最大堆取出的最大元素,將從最大堆總是在最小堆的底部是最大的元素?如果不是,那麼另一個問題是,如果我想從最小堆中刪除最大元素並將其與最小堆的最後一個元素進行交換,刪除最後一個元素,我是否需要運行必須比較該開關元素的操作與他

    -1熱度

    2回答

    我有一個下拉列表,我使用.Change()來觸發函數。使用getJSON功能基本得到一定的數據並且基於那些值必須爲mp3文件創建一個數組串。 下面的代碼是生成字符串,但始終以字符串undefined爲前綴。 在代碼中,你會注意到setTimeout這只是提供一定的延遲,直到收到數據。在下面的例子中,我使用靜態值,它仍然是前綴undefined。不知道爲什麼可能我以錯誤的方式定義了變量。 完整示例J

    0熱度

    1回答

    下面是我的程序,它使用基於0的數組和基於標準邏輯的書來創建min-heap。我正在使用2*i+1左側的孩子和2*i+2正確的孩子,因爲它是一個基於零的數組,我仍然得到了錯誤的輸出。我錯過了什麼? #include <iostream> #include <vector> #include <algorithm> using std::vector; using std::cin; us

    -1熱度

    2回答

    我必須在Python中構建完整的MIN-HEAP實現,而不使用內置的堆函數。 所以我有父母,左子女和右子女的定義,這需要在考慮從0蟒蛇號碼列表元素: from random import randint import math def parent(i): x = int(l.index(l[i])) #########3 y = int(math.floor(x/2))

    0熱度

    1回答

    嘿我試圖在JavaScript中實現一個小堆,但我有一個關於刪除最小的算法的問題。我使用數組來表示堆內部。當我向下滲透時,停止條件應該是什麼?在我的代碼中,我使用了2 * k < = this.size,所以它可能會傳遞到最後一個元素,但它不會覺得「正確」,是否有更好的停止條件?提前致謝! this.removeMin = function() { //replace root with

    0熱度

    1回答

    我想實現一個優先級隊列,它將按照其大小順序排列HashSets(即最小的HashSets將具有最高的優先級)。 我該如何在Java中實現它? 以下是我嘗試按優先級編號(最高優先級)成功訂購HashSets的次數。 我的主要方法: System.out.print("Enter size of priority queue: "); int inputSize = scanner.ne