Tree 在哈夫曼编码中组合最低频率

Tree 在哈夫曼编码中组合最低频率,tree,huffman-code,Tree,Huffman Code,我正在复习期末考试,目前我的重点是哈夫曼编码 据我所知。。取两个最低频率并将其组合。。自下而上建造这棵树 我的问题是。。当3个或更多的频率相同时,你会怎么做?选择哪两个组合重要吗?你把它们都结合起来了吗 字母顺序重要吗?很明显,在您完成编码部分之后,字母可能会有所不同,这取决于您选择的字母 我在网上找到了一些教程和示例,但似乎没有一个能够演示这种情况。任何建议都将不胜感激。谢谢 例子: 假设给我一组字母:[a,b,c,d,e,f,g],频率如下: a=3 b=2 c=6 d=2 e=4 f=2

我正在复习期末考试,目前我的重点是哈夫曼编码

据我所知。。取两个最低频率并将其组合。。自下而上建造这棵树

我的问题是。。当3个或更多的频率相同时,你会怎么做?选择哪两个组合重要吗?你把它们都结合起来了吗

字母顺序重要吗?很明显,在您完成编码部分之后,字母可能会有所不同,这取决于您选择的字母

我在网上找到了一些教程和示例,但似乎没有一个能够演示这种情况。任何建议都将不胜感激。谢谢


例子: 假设给我一组字母:[a,b,c,d,e,f,g],频率如下:


a=3 b=2 c=6 d=2 e=4 f=2 g=4

你不能把它们全部结合起来。把两个字母组合起来重复。如果您将所有这些逻辑组合在一起,则需要一个全新的逻辑,例如三值逻辑、四值逻辑等。

只需选择2即可。任意2个。你选哪两个并不重要。这里唯一有意义的指标是它们的频率,无论选择哪两个,频率都是相同的

你不能把这三个组合在一起


记住,哈夫曼树是二叉树,因为每个分支对应于位:
0
1
。哈夫曼树有3个分支是没有任何意义的,因为你没有3种不同的比特。

在我告诉你我的想法之前,你知道为什么哈夫曼编码有效,为什么你首先要组合最低频率吗?如果你这样做了,试着反思一下,看看你是否会自然而然地得到答案。这里有一个示例供您使用:
a:0.245 b:0.245 c:0.245 d:0.265
@SamIam您首先组合最低频率,因为它们将位于树的底部,因为访问频率最低。以你为例。。树的顶部父节点为1,右侧子节点为.34,然后左侧子节点为1。。将是0.66,左右两个孩子分别是0.33。是吗?是的,是的。不过,我已经更新了示例,使其与您的问题更为相关。问题是,您可能不希望如此依赖于人们在出现的每个场景中告诉您该做什么。如果你考虑一下哈夫曼编码的实际功能,这个问题的答案应该是公平的easily@SamIam好的,我把它画在一块干的黑板上。我小时候有一棵树,父母分别是.49和.245。还有一棵树,它的父母是.51,孩子是.245,265。我走对了吗?