如何把普通的树变成哈夫曼树并得出哈夫曼编码?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 05:11:51
如何把普通的树变成哈夫曼树并得出哈夫曼编码?

如何把普通的树变成哈夫曼树并得出哈夫曼编码?
如何把普通的树变成哈夫曼树并得出哈夫曼编码?

如何把普通的树变成哈夫曼树并得出哈夫曼编码?
.com/%B3%CC%D0%F2%D0%A1%B1%F8/blog/category/%CA%FD%BE%DD%BD%E1%B9%B9" target="_blank">http://hi.baidu.com/%B3%CC%D0%F2%D0%A1%B1%F8/blog/category/%CA%FD%BE%DD%BD%E1%B9%B9
//* * * * * * * * * * * * * * * * * * * * * * * *
//*CHAPTER :4 (4_4) *
//*PROGRAM :哈夫曼树 *
//*CONTENT :构造哈夫曼树,哈夫曼编码 *
//* * * * * * * * * * * * * * * * * * * * * * * *
#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{unsigned int weight; //结点权值
unsigned int parent,lchild,rchild; //结点的父指针,左右孩子指针
}HTNode,*HuffmanTree; //动态分配数组存储哈夫曼树
typedef char **HuffmanCode; //动态分配数组存储哈夫曼编码表
void CreateHuffmanTree(HuffmanTree &,unsigned int*,int ); //生成一棵哈夫曼树
void HuffmanCoding(HuffmanTree,HuffmanCode &,int ); //对哈夫曼树进行编码
void PrintHuffmanCode(HuffmanCode,unsigned int*,int); //显示哈夫曼编码
void Select(HuffmanTree,int,int&,int&); //在数组中寻找权值最小的两个结点
void main()
{HuffmanTree HT; //哈夫曼树HT
HuffmanCode HC; //哈夫曼编码表HC
int n,i; //n是哈夫曼树叶子结点数
unsigned int *w; //w存放叶子结点权值
.
...
...
另外,团IDC网上有许多产品团购,便宜有口碑