c语言实现霍夫曼编码代码
代码语言:c
所属分类:其他
代码描述:c语言实现霍夫曼编码代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
// // 霍夫曼编码 // #include <stdio.h> #include <stdlib.h> #include <string.h> /**思路:用一个有序链表(从大到小)来保存节点,然后通过链表来构造霍夫曼树, 再由霍夫曼树得到霍夫曼编码**/ typedef struct huffman_tree_node { int weight; //权重 char c; //字符 非叶子节点为0 struct huffman_tree_node *nextHuffmanTreeNode; //链表下一个节点 struct huffman_tree_node *leftHuffmanTreeNode; //左节点 struct huffman_tree_node *rightHuffmanTreeNode; //右节点 } HuffmanTreeNode; //霍夫曼树节点 typedef struct huffman_code { char *s; //编码 如 010, 00, .... int len; //编码长度 char c; //字符 } HuffmanCode; //霍夫曼编码(可以用来保存结果) /** * 创建一个节点 * @param c 字符 * @param weight 权重 * @return */ HuffmanTreeNode *createHuffmanTreeNode(char c, int weight) { HuffmanTreeNode *node = (HuffmanTreeNode *)calloc(1, sizeof(HuffmanTreeNode)); node->c = c; node->weight = weight; node->nextHuffmanTreeNode = NULL; node->leftHuffmanTreeNode = NULL; no.........完整代码请登录后点击上方下载按钮下载查看
网友评论0