哈夫曼树的应用从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树并将它存于文件hfmTree中.将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上;2.利用已经建好的哈
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/23 16:05:41
![哈夫曼树的应用从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树并将它存于文件hfmTree中.将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上;2.利用已经建好的哈](/uploads/image/z/5085574-70-4.jpg?t=%E5%93%88%E5%A4%AB%E6%9B%BC%E6%A0%91%E7%9A%84%E5%BA%94%E7%94%A8%E4%BB%8E%E7%BB%88%E7%AB%AF%E8%AF%BB%E5%85%A5%E5%AD%97%E7%AC%A6%E9%9B%86%E5%A4%A7%E5%B0%8Fn%2C%E4%BB%A5%E5%8F%8An%E4%B8%AA%E5%AD%97%E7%AC%A6%E5%92%8Cn%E4%B8%AA%E6%9D%83%E5%80%BC%2C%E5%BB%BA%E7%AB%8B%E5%93%88%E5%A4%AB%E6%9B%BC%E6%A0%91%E5%B9%B6%E5%B0%86%E5%AE%83%E5%AD%98%E4%BA%8E%E6%96%87%E4%BB%B6hfmTree%E4%B8%AD.%E5%B0%86%E5%B7%B2%E5%9C%A8%E5%86%85%E5%AD%98%E4%B8%AD%E7%9A%84%E5%93%88%E5%A4%AB%E6%9B%BC%E6%A0%91%E4%BB%A5%E7%9B%B4%E8%A7%82%E7%9A%84%E6%96%B9%E5%BC%8F%EF%BC%88%E6%AF%94%E5%A6%82%E6%A0%91%EF%BC%89%E6%98%BE%E7%A4%BA%E5%9C%A8%E7%BB%88%E7%AB%AF%E4%B8%8A%EF%BC%9B2%EF%BC%8E%E5%88%A9%E7%94%A8%E5%B7%B2%E7%BB%8F%E5%BB%BA%E5%A5%BD%E7%9A%84%E5%93%88)
哈夫曼树的应用从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树并将它存于文件hfmTree中.将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上;2.利用已经建好的哈
哈夫曼树的应用
从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树并将它存于文件hfmTree中.将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上;
2.利用已经建好的哈夫曼树(如不在内存,则从文件htmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中,并输出结果,将文件CodeFile以紧凑格式先是在终端上,每行50个代码.同时将此字符形式的编码文件写入文件CodePrint中.
3.利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中,并输出结果.
哈夫曼树的应用从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树并将它存于文件hfmTree中.将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上;2.利用已经建好的哈
#include
#include
#include
#includea
#include
#define MAXVALUE 200 /*权值的最大值*/
#define MAXB99v 30 /*最大的编码位数*/
#define MAXNODE 30 /*初始的最大的结点数*/
strUCt haffnode
{char data;
int weight;
int flag;
int parent; /*双亲结点的下标*/
int leftchild; /*左孩子下标*/
int rightchild; /*右孩子下标*/
};
struct haffcode
{int bit[MAXNODE];
int start; /*编码的起始下标*/
char data;
int weight; /*字符权值*/
};
/*函数说明*/
//
void haffmantree(int weight[],int n,struct haffnode hafftree[],char data[])
/*建立叶结点个数为n,权值数组为weight[]的哈夫曼树*/
{int i,j,m1,m2,x1,x2;
/*哈夫曼树hafftree[]初始化,n个叶结点共有2n-1个结点*/
for(i=0;i