
哈夫曼编码 回答有赏
#include iostream#include iomanip#include stringusing namespace std;#define MAX 256typedef string *STR;void InputData(string &s);void DeCode();typedef struct Huffnode { unsigned weight; \\\/\\\/权值 字符出现频率 bool in; \\\/\\\/ 是否加入Huffman树 int lchild,rchild; void Set(unsigned &w,int lc=-1,int rc=-1,bool in = false ) { weight = w; lchild = lc; rchild = rc; in = in; } Huffnode() { weight=0; in = false;lchild=-1;rchild=-1;}} *HuffTree;void GetCode(HuffTree &nodes,int &k,STR &Code,string &str,int i,int leafNum,unsigned *Ind) { if (k 选择1后,编码...按要求输入你要编码的字符串就行了,可以输入任意字符,包括汉字和特殊符号。 选择2后,译码... 将上一部编码的结果现保存起来,再按要求输入程序提示的内容即可。 \\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/下面是例子:\\\/\\\/\\\/\\\/-----------------[1]--编码[2]--译码1Please Input The Sources:Press 'A' & 'Enter' to Start:A [输入A和回车]Start Input!!:Hello,你是谁 [要编码的内容] [编码结果:]The Codes is:字符总数:13 字符: 频度: 44 1 72 1 101 1 108 2 111 1 163 1 173 1 191 1 196 1 199 1 202 1 203 1 227 1码符:0111100001001010010110110100111111110000101110101100\\\/\\\/-------------[1]--编码[2]--译码2输入出现的字符数:13 [上一步编码时出现的字符总数,编码结束后有提示]输入每个字符对应的数字代码(0-255)及其频度:格式: [代码][空格][频度]: [编码结束后的提示,copy过来即可] 44 1 72 1 101 1 108 2 111 1 163 1 173 1 191 1 196 1 199 1 202 1 203 1 227 1Input The Code You Want to DeCode:Please Input The Code You Want to DeCode:Press 'A' & 'Enter' to Start:AStart Input!!: [开始输入码字]0111100001001010010110110100111111110000101110101100. [输入小数点[.]结束]解码结果:Hello,你是谁 Press any key to continue [程序结束]\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/其实真正应用的时候可以将出现的字符数及其频度都保存在编码后的文件中,直接读取文件,就能解码了 因为第一组,编码“0”是编码“00”的前缀,在译码的时候遇到两个0不知道应该译成“0”+“0”还是“00”,而后面则没有这个问题,没有任何一个编码是另一个编码的前缀 不唯一,同一层上的结点,位置是可以互换的。 哈夫曼树不唯一,所以,编码也不唯一。 等长码就是所有指令的代码长度相等,有10条指令就需要4位2进制数来表示,从0000到1001。利用哈夫曼树来编码,如何保证是最优前缀码
给一串给定的概率进行哈夫曼编码,其结果是不是唯一的???
哈夫曼编码题.等码长到底是什么东西?怎么求?



