哈夫曼树的度

本文探讨了赫夫曼树的拓展——度为m的赫夫曼树,指出其节点度数为0和m的特点。在构建过程中,每次合并会增加一个非叶子节点并减少m-1个节点。对于n个节点的树,非叶子节点数量为⌈(n-1)/(m-1)⌉。内容涉及数据结构与算法领域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做王道题遇见一个:
若度为m的赫夫曼树中,叶子节点个数为n,则非叶子节点的个数为(C)
A:n-1 B:⌊n/m⌋-1 C:⌈(n-1)/(m-1)⌉ D:⌈n/(m-1)⌉-1

最开始看见这题有个疑惑,根据书上的解释,赫夫曼树就是二叉树,其结点的度只有0和2两种,何来度为m一说,在查阅资料过后才知道赫夫曼除了二叉树,还有多叉树。
对于度为m的赫夫曼树,有这样一个特点,其结点的度只有0与m两种。
这种度为m的赫夫曼树的构造参照度为2的赫夫曼树,将权值最小的m个结点放在一起(第一次合并可能少于m个),有一个共同的父节点,这个父节点的权值是这m个结点的权值之和,然后再将这个父结点的权值与剩余的结点的权值进行比较,以此类推,直到所有的结点都加进树中。
再回到这一题,对于赫夫曼树,在构造时,每进行一次比较合并,就会多一个非叶子结点,同时减少m-1个结点,所以对于n个结点,可以进行⌈(n-1)/(m-1)⌉次比较(其中还有剩余的一个父结点),所以就多出⌈(n-1)/(m-1)⌉个非叶子结点

评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值