微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

3阶B树的叶子数

如何解决3阶B树的叶子数

我是数据结构的新手, 我想知道高度为3的3阶B树能有多少叶子?

假设根的高度为1。

我的意见: 当高度为1时,叶子的最少数量为2(根据定义),最大为3。

然后当它增长到2时,最大叶数变为6 然后增长到3,最大叶数变成9 然后,叶子的数量始终为9

有人可以帮我吗? 谢谢

解决方法

我假设您使用Knuth的叶子定义,即它们是不携带任何信息的NIL节点,以及Knuth的顺序定义,即内部节点可以拥有的最大子代数。

我的观点:当高度为1时,[n]片叶子的最少为2个(根据定义),最大为3个。

正确。

然后当它增长到2时,最大叶子数变为6

...仅当根有两个子代时,但这不是最大数。根可以有3个孩子,每个孩子可以有3个叶子,所以我们有3 x 3 = 9

然后增长到3,最大叶子数变为9,此后叶子数始终为9

我在这里失去了逻辑...高度为2的树的9片叶子中的每一个都可以变成带有三片新叶子的内部节点,所以我们得到9 x 3 = 27片叶子

将叶子的数量乘以少一高度即可最大化叶子的数量。

因此公式为:max(#leaves)= 3 h

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。