哪位大牛有哈夫曼编码的C语言源程序,麻烦帮帮忙啦!

来源:百度知道 编辑:UC知道 时间:2024/06/10 15:55:14
哈夫曼编码
[目的]
构建所输入符号(及权值)的哈夫曼树,并利用该树求出各符号的编码,深入理解最优二叉树的概念及其特性。
[问题描述]
读入各个符号及其权值,求各符号的哈夫曼编码。
[基本要求]
读入各个符号及其权值,建立哈夫曼树;利用建立的哈夫曼树对各符号进行编码,输出编码结果。
[选做内容]
将所建立的哈夫曼树以直观的方式(树或凹入形式的表)显示。

这是我当时做的作业题,就是数据结构书上的那道题。不知道是否和你说的是同样一道题,代码如下:
/*
HuffmanCode BY Turbo C 2.0

Filename: Huffman.c

Author: dcyu.

Ver 1.00
*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
#include <conio.h>

typedef struct {
unsigned int weight;
unsigned int parent,lchild,rchild;
} HTNode,*HuffmanTree;

typedef char **HuffmanCode;

typedef struct {
unsigned int s1;
unsigned int s2;
} MinCode;

void Error(char *message);
HuffmanCode HuffmanCoding(HuffmanTree HT,HuffmanCode HC,unsigned int *w,unsigned int n);
MinCode Select(HuffmanTree HT,unsigned int n);