资源简介
用DEVC++编译实现。一个完整的系统应具有以下功能:
(1)I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。
(2)E:编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件htmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。
(3)D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。
(4)P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端
代码片段和文件信息
//#include
#include
#include
#include
#include
using namespace std;
typedef struct
{
float weight;
int parentlchildrchild;
}HTNode* HuffmanTree;
typedef char **HuffmanCode;
HuffmanTree HT;//定义全局变量
HuffmanCode HC;
float *w;
int ijn;
char *z;
int flag=0;
int numb=0;
int min(HuffmanTree tint i)//哈夫曼编码
{ // 函数void select()调用
int jflag;
float k=1000;
for(j=1;j<=i;j++)
if(t[j].weight k=t[j].weightflag=j;
t[flag].parent=1;
return flag;
}
void select(HuffmanTree tint iint &s1int &s2) //select函数
{ // s1为最小的两个值中序号小的那个
int j;
s1=min(ti);
s2=min(ti);
if(s1>s2)
{
j=s1;
s1=s2;
s2=j;
} //若s1>s2则s1与s2互换
}
void HuffmanCoding(HuffmanTree &HTHuffmanCode &HC float *
- 上一篇:共轭梯度法求解偏微分方程MPI并行的c++实现
- 下一篇:大地测量学程序设计VC++
评论
共有 条评论