程序求教?<HUFFMAN>

来源:百度知道 编辑:UC知道 时间:2024/06/17 03:40:52
用一个程序完成一下两个功能:
1:用HUFFUMAN树给出HUFFMAN编码
2用下表给出的字符集和频度的实际统计数据建立HUFFMAN树,并实现以下报文的编码和译码:“THIS#PROGRAM#IS#MY#FAVORITE”。
字符:# A B C D E F G H I J K L M N O P K R S T U V W X Y Z
频度:186 64 13 22 32 103 21 15 47 57 1 5 32 20 57 63 15 1 48 51 20 23 8 18 1 16 1

兄弟急求 忘各位仁兄帮忙啊 最好用C或C++编译
刚开学老师让弄的 都没怎么学过C++ 有点难度所以特请教各位了~~~不胜感激
兄弟,两个文件是怎么回事 可以一块输入?i是一个程序还是两个程序,我一块输入了怎么有一个错误啊 ?

我以前做的,分两个文件,VC6 编译的,仅供参考,呵呵

======== 文件 1 ==========
#include <string.h>
#include <stdio.h>
#include "dlib.h"
#define MAX_NODE 1024
#define MAX_WEIGHT 4096
typedef struct HaffmanTreeNode
{
char ch, code[15];
int weight;
int parent, lchild, rchild;
}HTNode, *HaTree;
typedef struct
{
HTNode arr[MAX_NODE];
int total;
} HTree;
/* 统计字符出现的频率 */
int statistic_char(char *text, HTree *t)
{
int i, j;
int text_len = strlen(text);
t->total = 0;
for (i=0; i<text_len; i++)
{
for (j=0; j<t->total; j++)
if (t->arr[j].ch == text[i])
{
t->arr[j].weight ++;
break;
}
if (j==t->total)
{
t->arr[t->total].ch = text[i];
t->arr[t->total].weight = 1;
t->total ++;
}

}
printf("char frequence\n"); <