ZKX's LAB

求大神,关于数据结构哈夫曼编码的~ 数据结构哈夫曼编码分析与思考

2021-04-04知识4

求解,关于数据结构的哈夫曼编码的问题 方案一应该指的就是下面那个图了.下面那个图是一棵二进制的哈夫曼树,其中因为是二进制编码,所以使用的是0\\1的边.那么对于每一个叶子节点来说,从根节点到叶子节点走过的边就是这个数字的编码.那么举一个例子,比如频数=2的也就是最左端的那个叶节点,根到它走了5个0,它的编号就是\"00000;在比如说10这个叶子节点,根节点到他走了\"0011\",它的编号也就是0011.那么根据上面几个例子,那么叶子到根的距离[叶子的深度],也就是边的条数,就是这个叶子所代表的编码长度.比如19\\32\\21到根的距离都是2,7\\6\\10到根的距离都是4,2\\3到根的距离都是5.也就是上面那个WPL的系数的意思.表示单个编码长度*使用频率=总的编码长度.而方案二表示的传统编码,就是上面表格中的那个等长编码:\"000\"\"001\".它们的长度都是3,所以就是*3然后为什么哈夫曼编码正确而且最优呢?哈夫曼编码由于构成了一棵树,而且是叶子节点作为编码的代表,所以没有任何一个编码是另一个编码的前缀,所以哈夫曼编码是一个具有正确性的编码.然后哈夫曼树的构造是根据贪心的思想,每次选出两个最小的点合成一个新的点所构成的.就满足了最优性.构造的过程应该书上会有写.我就不再赘述了.

一个关于数据结构的问题,有关哈夫曼编码的,解答看不懂,求解答,谢谢! 根据题意哈夫曼树的形状类似如下o\\o Y\\o Y\\o o\\/\\A B C D或者o\\o Y\\o Y\\o C\\A B第1点,编码长度不超过4,每一个“/”边表示为0,“\\”边表示为1,如上图A的编码是:0000,B是0001,如果深度超过5,有六层的话,最下面的叶子结点编码有5位,所以编码长度不超过4,说明哈夫曼树深度不超过5第2点,编码1 和 01 是在深度为2、3层,如上面的图Y。第3点,其他字符有可能是00或者 0000 0001 0010 0011或者 001 0000 0001 在第三层 第四层 第五层,这里说只能在第四层和第五层,不严谨。有可能只有是三个字符的时候,只有三层了。还可以多少个字符编码:1个或者3个或者4个。

数据结构--哈夫曼编码 从八个里面选出最小的二个,即是3(0.02),6(0.03),和作为新数即是9(0.05);

#哈夫曼编码运用了哪种数据结构#数据结构哈夫曼编码分析与思考

随机阅读

qrcode
访问手机版