FibonacciHeap #

new FibonacciHeap() #

创建一个新的 Fibonacci 堆实例。

fibonacciHeap.insert() #

将一个新的数据元素插入堆中。此时不执行任何堆合并,新节点仅插入到此堆的根列表中。运行时间:O(1) 实际。

类型[FibonacciHeap](#FibonacciHeap) 的实例方法

fibonacciHeap.size() #

返回堆中的节点数。运行时间:O(1) 实际。

类型[FibonacciHeap](#FibonacciHeap) 的实例方法

fibonacciHeap.clear() #

从此堆中移除所有元素。

类型[FibonacciHeap](#FibonacciHeap) 的实例方法

fibonacciHeap.isEmpty() #

如果堆为空,则返回 true,否则返回 false。

类型[FibonacciHeap](#FibonacciHeap) 的实例方法

fibonacciHeap.extractMinimum() #

从堆中提取具有最小键的节点。均摊运行时间:O(log n)。

类型[FibonacciHeap](#FibonacciHeap) 的实例方法

fibonacciHeap.remove() #

给定节点的引用,从堆中移除一个节点。如果需要,将合并堆中的树。如果存在键值为 -Infinity 的节点,此操作可能无法正确移除元素。运行时间:O(log n) 均摊。

类型[FibonacciHeap](#FibonacciHeap) 的实例方法

FibonacciHeap._decreaseKey() #

给定新的键值,减小堆节点的值。堆的结构可能会被更改,并且不会被合并。运行时间:O(1) 均摊。

类型[FibonacciHeap](#FibonacciHeap) 的静态方法

FibonacciHeap._cut() #

链接操作的反向操作:从父节点的子列表中移除节点。此方法假定 min 非空。运行时间:O(1)。

类型[FibonacciHeap](#FibonacciHeap) 的静态方法

FibonacciHeap._cascadingCut() #

执行级联剪切操作。这会将节点从其父节点剪切,然后对父节点执行相同的操作,依此类推,直到树的顶部。运行时间:O(log n);不包括递归为 O(1)。

类型[FibonacciHeap](#FibonacciHeap) 的静态方法

FibonacciHeap._linkNodes() #

将第一个节点作为第二个节点的子节点。运行时间:O(1) 实际。

类型[FibonacciHeap](#FibonacciHeap) 的静态方法

Fork me on GitHub