📄 huffmancoding.cpp
字号:
#include"Huffmanhead.h"
extern char HC[MAX][MAX],ShuruName[MAX];
void HuffmanCoding(HuffmanTree HT[],char CodeTemp[],int n)//从叶子到根节点逆向求每个字符的赫夫曼编码
{
int start,i,c,f;
CodeTemp[n]='\0';//编码结束符
printf("Huffman Codes are:\n\n");
printf(" \tShuruName\t\tweight\t\t code\n");
printf("****************************************************************\n");
for(i=1;i<=n;i++)
{
start=n;
for(c=i,f=HT[i].parent;f!=0;c=f,f=HT[f].parent)//对第i个字符由叶子节点寻找到根结点进行编码
{
if(HT[f].lchild==c)
CodeTemp[--start]='0';
else
CodeTemp[--start]='1';
}
strcpy(HC[i],&CodeTemp[start]);//把第i个字符的编码存放在HC[i]中
printf(" \t %c \t\t %d \t\t %s\n",ShuruName[i],HT[i].weight,HC[i]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -