Description
写一个哈夫曼码的编/译码系统,要求能对要传输的报文进行编码和解码。构造哈夫曼树时,权值小的放左子树,权值大的放右子树,编码时右子树编码为1,左子树编码为0。
Input
输入表示字符集大小为n(n <= 100)的正整数,以及n个字符和n个权值(正整数,值越大表示该字符出现的概率越大);输入串长小于或等于100的目标报文。
Output
经过编码后的二进制码,占一行;
以及对应解码后的报文,占一行;
最后输出一个回车符
-
Sample Input
5 a b c d e 12 40 15 8 25 bbbaddeccbbb -
Sample Output
00011111110111010110110000
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int pc = 1;
typedef struct HtNode
{
int weight;
int parent, lchild, rchil

这篇博客介绍了如何构建哈夫曼树并实现哈夫曼编码和解码系统。内容包括根据字符权值构建哈夫曼树的规则,以及对目标报文进行编码和解码的过程。示例输入和输出展示了编码和解码的实际应用。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



