简体   繁体   English

如何从 C 中的给定霍夫曼树生成霍夫曼代码?

[英]How to generate Huffman code from a given Huffman tree in C?

I'm a bit stuck with this fonction build HuffmanCode that fill the array HuffmanCode with codes of each charactere ASCII我对这个函数构建 HuffmanCode 有点坚持,它用每个字符 ASCII 的代码填充数组 HuffmanCode

struct code_char {
    int len; /* length of code*/
    int code[256]; /* 0s and 1s  */
};

struct code_char HuffmanCode[256];

typedef unsigned char Element;

struct node {
    Element data;
    struct node *leftN;
    struct node *rightN;
};

typedef struct node *Tree;

void buildHuffmanCode(Tree huff){
    if(huff!=NULL){
        if isLeaf(huff){
            HuffmanCode[leaf(huff)]=
        }

    }
}


In pseudo-code it'll be something like this:在伪代码中,它会是这样的:

buildHuffmanCode(Tree, "");

and then接着

void buildHuffmanCode(Tree huff, string prefix){
    if(huff!=NULL){
        if isLeaf(huff){
            HuffmanCode[leaf(huff)]= prefix;
        }
        else {
            buildHuffmanCode(huff->left, prefix + "0");
            buildHuffmanCode(huff->right, prefix + "1");
        }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM