哪位大牛有哈夫曼编码的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);