• 大小: 8KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-01-10
  • 语言: C/C++
  • 标签: 哈夫曼树  

资源简介

用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].weightk=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 *

评论

共有 条评论