[英]Create Huffman Code Tree from min-heap C++
假設您有一個 C++ 程序,它必須從給定的 .txt 文件中讀取文本。 該計划將:
我想我會將每個節點存儲在一個 huffman 類中,如下所示:
struct CharNode {
char value;
int frequency;
bool internal;
int label;
CharNode *parent;
CharNode *left_child;
CharNode *right_child;
};
我不完全確定從哪里開始。 任何幫助將非常感激!
首先使用一個數組,該數組的長度足以為您的應用程序應識別的每個字符包含一個元素。 現在遍歷字符串並增加與它們的 ASCII 值相對應的數組元素。 (您可能需要減去初始 ASCII 值的某個基數,因此您開始計算 'a' 的第一個數組元素)
這部分也可以很容易地在 C 中完成,因為它使用字符和整數作為等價物。
完成后,您將擁有所有字符及其出現次數。 現在,一旦開始構建樹節點,您就可以遍歷數組。 並在該樹上使用您的堆算法。
或者只是對數組進行排序,然后從那里開始構建您的樹。
祝你好運和快樂編碼:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.