繁体   English   中英

具有给定键的节点数最少的 2,4 树

[英]2,4 tree with the fewest number of nodes with the given keys

假设我们有一组键 K = {1, 2, 3, 4, 5, 6,..., 15} 我们需要从中构建一个二四树,这样:

  • CASE1 :树的节点数最少。
  • CASE2 :树的节点数最多。

我的想法-

二四树中的一个节点最多可以有3个键,每个节点有4个子节点,如果我们需要最小化节点数我们需要尽可能的保持节点满,但是好像找不到策略这将保证这一点。

一种似乎有利可图的方法是将数组分成三部分,然后在根部插入中位数,接下来第一个和最后一个孩子是预先确定的,并对剩余键的 rest 重复相同的过程。这种方法似乎也达不到要求。

我们确实知道这种结构的最坏情况高度需要接近 4,最佳情况高度需要接近 2(使用 2、4 树高度属性 h ~ log(n))

是否有解决此类问题的策略(任何提示将不胜感激)?

要制作节点数最少的 2-4 树:

  1. 从 N 个键开始,floor(N/4) of then 需要是父母。 选择这些键,尽可能均匀分布,以确保它们的两侧各有 2-3 个键。
  2. 与父母重复此过程,直到您最多拥有 3 个钥匙。 根中的那些 go。

因此,从 15 个键开始,您在 4 个节点(3 个父节点)中有 12 个叶级键。 这 3 个父母可以 go 在 root 中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM