DeleteMin() in Fibonacci Heaps
2016-04-10 12:50:23 0 举报
DeleteMin()是斐波那契堆(Fibonacci Heaps)中的一个核心操作,用于删除具有最小关键字的节点。在执行此操作时,首先找到具有最小关键字的0-linked节点,并将其与父节点断开连接。然后,将该节点的子节点重新链接到其父节点,并更新其颜色和高度属性。接下来,通过“合并”操作将该节点与其父节点合并,以维护堆的性质。最后,如果根节点的关键字仍大于0,则将其从树中删除。这个过程会不断重复,直到找到一个满足条件的最小堆。DeleteMin()操作在斐波那契堆中非常关键,因为它能够高效地实现优先队列等数据结构。
作者其他创作
大纲/内容
H-RootList -= H-MinNodeH-MinNode = H-MinNode-Left
N
End
NewQueue-RootList += Root
Y
Start
Start = H-MinNodeRoot = H-MinNode
H-RootList += AllChildren(H-MinNode)
Found?
NewQueue-RootList -= SameDegRoot
NewQueue = An empty Fibonacci heap
Root = Root-Left
Root == Start
Return NewQueue
0 条评论
下一页