缀编码,就是以n 种子符出现的频率作权,构造一刻赫夫曼树, 此构造过程成为赫夫曼编码。Р本演示程序用C++6.0编写,完成赫夫曼树的构造以及赫夫曼编码的设计。Р(1)输入的形式和输入值的范围:n中字符,其出现的频率Р(2) 输出的形式: 二进制前缀编码Р(3) 程序所能达到的功能:设计一颗赫夫曼树,由此得到二进制前缀编码,即赫夫曼编码。Р(4)测试数据:Р已知某系统在通信联络中只可能出现8种字符(a,b,c,d,e,f,g,h),其概率分别是:0.06,0.28,0.07,0.09,0.14,0.21,0.03,0.12Р ①输入8种字符的概率;Р ②构造赫夫曼树;Р ③输出每个字符的赫夫曼编码;Р三. 概要设计Р(1)为了实现上述程序功能,需要定义单链表的抽象数据类型:РADT BinaryTree {Р 数据对象D:D是具有相同特性的数据元素的集合。Р 数据关系R: 若D=,则R=,称BinaryTree为空二叉树;Р 若D,则R={H}Р基本操作:Р?void HuffmanCoding(HuffmanTree&,HuffmanCode&,int)Р 操作结果:求赫夫曼编码Р?void Select(HuffmanTree,int,int*,int*)Р 操作结果:查找权值较小的两个结点Р?void OutputHuffmanCode(HuffmanTree,HuffmanCode,int)Р 操作结果:输出赫夫曼编码Р(2)本程序包含4个函数:Р ①主函数main()Р ②求赫夫曼编码函数HuffmanCoding();Р ③查找权值较小的两个结点函数Select ();Р ④输出赫夫曼编码函数OutputHuffmanCode ()Р Р各函数间关系如下: Р HuffmanCoding()РMain Select ()Р OutputHuffmanCode ()