• 大小: 2.70KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-02-01
  • 标签: C语言  编程  语言  

资源简介

介绍了哈夫曼树编程的具体实现,对于帮助哈夫曼树的理解具有重要的参考意义。

资源截图

代码片段和文件信息

#include
#include
#include
#define N 8
typedef  struct 
{
int  weight;   
int  parentlchildrchild;
}HTNode*HuffmanTree;
typedef  char **HuffmanCode;

void Select(HuffmanTree &HT int i int &s1 int &s2)
{
s1=0;s2=0;
int min1=30000min2=30000;
for(int k=1;k<=i;k++)
{
if(HT[k].parent==0)
{
if(HT[k].weight {
min2=min1;
min1=HT[k].weight;
s2=s1;
s1=k;
}
else if(HT[k].weight {
min2=HT[k].weight;
s2=k;
}
}
}
}

void HuffmanCoding(HuffmanTree &HTHuffmanCode &HCint *wint n) 
{//HT是Huffman树,HC是Huffman编码,n为字符个数,w指向n个字符的权
int mis1s2startcf;
HuffmanTree p;
char * cd;
if (n<=1) 
return;
m=2*n-1;                                                   //m为HT结点总数,n为叶子结点个数
HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode));
for(p=(HT+1)i=1;i<=n;++i++p++w)
{
p->weight=*w;
p->parent=0;
p->lchild=0;
p->rchild=0;
}
for(;i<=m;++i++p)
{

评论

共有 条评论