【问题标题】:Can Fibonacci Heap have more than one nodes with equal rank(or value, or key)?斐波那契堆可以有多个具有相同等级(或值或键)的节点吗?
【发布时间】:2015-08-07 17:04:28
【问题描述】:

我一个人研究斐波那契堆,遇到了一个问题。

我知道任何节点都可以插入斐波那契堆,但是如果新节点的等级(或值或键)等于兄弟节点呢?

1) 例如,

   (1) <-minimum root
  /   \
(3)   (5)

如果插入(1)的节点会发生什么?

(1) --- (1)
       /   \
     (3)   (5)

2) 或者在这种情况下会发生什么?

之前:

 (2)-----(4)-----(5)
  |      / \     / \
 (1)   (6) (7) (8) (9)

之后:

 (2)-----(4)-----(5)    +     (5)
  |              / \          / \
 (1)           (8) (9)      (1) (2)

新的节点树应该属于哪里?

3) 您将如何整合(或排序)这种在根部有一对相等节点的树?

 (10) ---- (10) ----- (1) ----- (3) ----- (4)

如果有人能帮我解决斐波那契堆上的这个小困惑,我将不胜感激。谢谢。

【问题讨论】:

    标签: algorithm heap computer-science fibonacci-heap


    【解决方案1】:

    具有相同键的节点是可以的。

    回忆堆属性:对于min-heap,每个节点的key大于 或等于到 其父级的键。 (max-heap 属性也可以类似定义。)

    斐波那契堆只是这些树的集合。如果多个根具有最小键,则任何这样的根都可以是最小节点

    在你的例子中,(1)和(3)没有错。但是在 (2) 中,您的树违反了最小堆属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-29
      • 2012-12-16
      • 2010-11-24
      • 2011-03-24
      • 2016-11-18
      • 2010-12-19
      • 1970-01-01
      • 2017-01-18
      相关资源
      最近更新 更多