From bd943b086a9a470ef853d50bbea1fa207e5cb4ec Mon Sep 17 00:00:00 2001 From: mcawezome <20085898@tafe.wa.edu.au> Date: Mon, 18 Nov 2024 12:12:17 +0800 Subject: [PATCH] Added tests and docstrings to fibonacci_heap.py --- data_structures/heap/fibonacci_heap.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/data_structures/heap/fibonacci_heap.py b/data_structures/heap/fibonacci_heap.py index 71b68ac7e..2961da266 100644 --- a/data_structures/heap/fibonacci_heap.py +++ b/data_structures/heap/fibonacci_heap.py @@ -12,7 +12,6 @@ Operations supported: - Merge: O(1) """ - class Node: """ A node in a Fibonacci heap. @@ -29,7 +28,6 @@ class Node: degree: Number of children. mark: Boolean indicating if node has lost a child. """ - def __init__(self, val): self.val = val self.parent = None @@ -233,7 +231,7 @@ class FibonacciHeap: This is an internal method that maintains the heap's structure. """ - max_degree = int(self.size**0.5) + 1 + max_degree = int(self.size ** 0.5) + 1 degree_table = [None] * max_degree # Collect all roots @@ -273,11 +271,11 @@ class FibonacciHeap: def decrease_key(self, node, new_val): """ Decreases the value of a node. - + Args: node: The node whose value should be decreased. new_val: The new value for the node. - + Raises: ValueError: If new value is greater than current value. """ @@ -301,9 +299,9 @@ class FibonacciHeap: Args: node: Node to be cut. parent: Parent of the node to be cut. - """ """ + """""" Performs cascading cut operation. - + Args: node: Starting node for cascading cut. """ @@ -326,7 +324,8 @@ class FibonacciHeap: node: Starting node for cascading cut. """ - if parent := node.parent: + parent = node.parent + if parent: if not node.mark: node.mark = True else: @@ -360,5 +359,4 @@ class FibonacciHeap: if __name__ == "__main__": import doctest - doctest.testmod()