首页 > 编程知识 正文

什么是完全二叉树定义,huffman什么意思

时间:2023-05-06 09:34:37 阅读:168550 作者:402

目的根据给定的加权叶节点计算Huffman树,即最优二叉树。 那是所有叶节点的权值级数之和最小

算法特点Huffman算法思想直观,让权重最小的叶节点位于更底层,而权重较高的叶节点尽量在高层

请小心。 最佳二叉树中不存在只有一个儿子的节点。

算法要求给定一些叶节点和它们的权重,构成最优二叉树,直接的想法当然是把权重小的配对,作为其父节点的两个儿子。

但是,问题也有可能发生层数最少的二叉树不是最佳的情况。 这是因为,还可以使权重小的节点下沉,使权重高的节点上浮。

因此,Huffman算法在每次的确找到两个权重最小的节点,组合成为父节点。但是下一步就是用这个父节点代替原先两个小权重节点的位置,继续挑选两个权重最小的节点这样,如果生成的父节点的权重保持较小,则可能继续成为子节点,最终生成的二叉树也将是最佳的。

在算法示例中,指定一组子节点及其权重。

FOERGT235447的两个最小节点分别为f和o,组合为fo(5)

FOERGT55447的两个最小节点分别为r和g,组合为rg(8)

FOERGT5587的两个最小节点分别是FO和e,并且耦合到Foe(10 )

FOERGT1087的两个最小节点分别为RG和t,组合成rgt(15 )

FOERGT1015将这两个子树组合在一起,成为最佳的二叉树。

过程如下图所示。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。