对26个英文字母进行huffman编码

  1. 1、建立哈夫曼树
  2. 2、从每个叶结点回溯到root的路径,并记录路径,则为哈夫曼编码
  3. 3、查表方式获得每个字符的哈夫曼编码
#include 
#include 
#include 
///----------------------定义结点数据---------------
#define leave 26
#define node (26*2-1)
typedef struct nodee
{
    char character;
    float weight;
    int lson;
    int rson;
    int par;
}Node,*pnode;

typedef struct code
{
    int hufcode[leave];///叶节点最长编码位数应该为树的最长路径 ,储存编码结果
    int sta;  ///编码起始位(相对编码数组)
    char Char; ///编码的字符值

}Code,*pcode;

///----------------------构造哈夫曼树----------------
void huffman(Node ht[],float wt[])
{
    int i,j,x1,x2;
    float min1,min2;
///初始化结点数组ht  ,即对huffman树进行初始化
    for(i=0;i

你可能感兴趣的:(对26个英文字母进行huffman编码)