Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 需要了解如何减少斐波那契堆中的键的帮助吗_Algorithm_Data Structures_Heap_Fibonacci_Fibonacci Heap - Fatal编程技术网

Algorithm 需要了解如何减少斐波那契堆中的键的帮助吗

Algorithm 需要了解如何减少斐波那契堆中的键的帮助吗,algorithm,data-structures,heap,fibonacci,fibonacci-heap,Algorithm,Data Structures,Heap,Fibonacci,Fibonacci Heap,我试图理解如何实现斐波那契堆操作。假设我们有以下堆: 例如,我们如何将35降至27?由于27不大于30,因此顺序不保留,因此我们必须重建堆。那么27去了哪里?在Fibonacci堆的5?下,“减少关键点”实际上会从树中删除关键点减少到父关键点以下的所有节点。在您的情况下,该节点将作为单例节点放入根列表中 一般来说,减少关键工作如下: 减少按键 如果节点的新密钥大于其父节点的密钥,请停止 如果节点是根节点,请停止 取消标记节点并将其从其父节点剪切 如果父项未标记,则标记它 如果父项已标记,请转至

我试图理解如何实现斐波那契堆操作。假设我们有以下堆:


例如,我们如何将35降至27?由于27不大于30,因此顺序不保留,因此我们必须重建堆。那么27去了哪里?在Fibonacci堆的5?

下,“减少关键点”实际上会从树中删除关键点减少到父关键点以下的所有节点。在您的情况下,该节点将作为单例节点放入根列表中

一般来说,减少关键工作如下:

  • 减少按键
  • 如果节点的新密钥大于其父节点的密钥,请停止
  • 如果节点是根节点,请停止
  • 取消标记节点并将其从其父节点剪切
  • 如果父项未标记,则标记它
  • 如果父项已标记,请转至(3)
  • 希望这有帮助