满K叉树的叶子节点数有什么特点?

满 K 叉树中的节点要么是叶子结点,要么有 k k k 个子节点

满 K 叉树的叶子结点数 m m m 满足:
( m − 1 ) % ( k − 1 ) = 0 (m-1) \% (k-1) = 0 (m1)%(k1)=0

以3叉树为例:
在这里插入图片描述
容易观察:假设初始状态如蓝框所示,每当增加新的叶子节点,必然需要把一个叶子结点变成中间节点,再增加新的 k k k 个叶子结点,所以算下来新增了 k − 1 k-1 k1 个叶子结点。

所以,满 k k k 叉树的叶子结点数 m m m 必然是如下等差数列的一项:
k , 2 k − 1 , 3 k − 2 , … , k + n ( k − 1 ) , … k, 2k-1, 3k-2, \ldots, k+n(k-1), \ldots k,2k1,3k2,,k+n(k1),

m = k + n ( k − 1 ) m = k + n(k-1) m=k+n(k1) ( m − 1 ) % ( k − 1 ) = 0 (m-1)\%(k-1) = 0 (m1)%(k1)=0

这个结论有什么用呢?看下面这道题:

在这里插入图片描述
这道题的本质上就是要添加叶子节点使得归并树是一个满 7-叉树:

假设需要添加 x x x 个叶子节点,使
( 33 − 1 + x ) % ( 7 − 1 ) = 0 (33-1+x)\%(7-1) = 0 (331+x)%(71)=0
得出: x = 4 x = 4 x=4.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值