Data structures 所有的树都是斐波那契二项式树吗?

Data structures 所有的树都是斐波那契二项式树吗?,data-structures,tree,heap,fibonacci-heap,Data Structures,Tree,Heap,Fibonacci Heap,斐波那契堆是否可能包含非二叉树的树?如果是,这将如何发生?你能举个例子吗?是的,这是可能发生的。直观地说,原因是在斐波那契堆中,减少键操作可以通过从较大的树中剪切一个子树来工作,从而产生(可能)不是二叉树的两棵树。这与二项式堆不同,在二项式堆中,reduce key通过从其key一直减少到根的节点执行冒泡操作来工作 为了看一个具体的例子,让我们在Fibonacci堆中插入五个元素,比如1、3、5、7和9。这就产生了堆 1 - 3 - 5 - 7 - 9 现在,让我们做一个最小出列,它提取1。现

斐波那契堆是否可能包含非二叉树的树?如果是,这将如何发生?你能举个例子吗?

是的,这是可能发生的。直观地说,原因是在斐波那契堆中,减少键操作可以通过从较大的树中剪切一个子树来工作,从而产生(可能)不是二叉树的两棵树。这与二项式堆不同,在二项式堆中,reduce key通过从其key一直减少到根的节点执行冒泡操作来工作

为了看一个具体的例子,让我们在Fibonacci堆中插入五个元素,比如1、3、5、7和9。这就产生了堆

1 - 3 - 5 - 7 - 9
现在,让我们做一个最小出列,它提取1。现在,我们尝试将所有剩余元素压缩在一起,这将合并树,如下所示:

    3
   /|
  5 7
    |
    9
现在,假设我们在上执行一个“减少关键点”操作,将关键点9减少到6。为了做到这一点,我们从其父树上切下9棵树,并将其合并到顶部的树列表中,从而生成

   3 - 6
  /|
 5 7
现在根为3的树只包含3个元素,所以它不再是二叉树了

希望这有帮助