作业帮 > 综合 > 作业

关于哈夫曼编码的一道题

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/01 02:02:06
关于哈夫曼编码的一道题
假定用于通信的报文仅由8个字母:a,b,c,d,e,f,g,h组成,各字母在电文中出现的频率分别为5,25,3,6,10,11,36,4.试为这8个字母设计哈夫曼编码,给出相应的哈夫曼树,原电文压缩存储的总空间?并给出报文“abefhgeadcbb”的总码数?
关于哈夫曼编码的一道题
下面是我写的一个程序,希望能满意.
#include
using namespace std;
struct htnode
{
char ch;
int weight;
int parent;
int lchild,rchild;
};
class huffmantree
{
public:
void code(char str1[],int w[],int n);
void uncode(char str1[],char str2[],int n);
private:
htnode ht[3000];
void creathuffmantree(char str1[],int w[],int n);
void select(int pos,int &r1,int &r2);
};
void huffmantree::select(int pos,int &r1,int &r2)
{
r1=r2=0;
for(int i=1;i