0% found this document useful (0 votes)
137 views

Fibonacci Heap

Fibonacci heaps are a data structure for implementing priority queues. They are similar to binomial queues but have better amortized running times. A Fibonacci heap is a collection of trees that maintain the min-heap property. Operations like make-heap, insert, find-min, decrease-key, and union have O(1) amortized time complexity, while delete-min has O(log n) amortized time complexity. Each node stores pointers to its children, parent, left and right siblings. Tree roots are connected in a circular doubly linked list with a min pointer pointing to the minimum element.

Uploaded by

Unnati Shah
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
137 views

Fibonacci Heap

Fibonacci heaps are a data structure for implementing priority queues. They are similar to binomial queues but have better amortized running times. A Fibonacci heap is a collection of trees that maintain the min-heap property. Operations like make-heap, insert, find-min, decrease-key, and union have O(1) amortized time complexity, while delete-min has O(log n) amortized time complexity. Each node stores pointers to its children, parent, left and right siblings. Tree roots are connected in a circular doubly linked list with a min pointer pointing to the minimum element.

Uploaded by

Unnati Shah
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

1

Fibonacci Heap
Unnati Shah
13/10/2019

Abstract Pointers representing a Fibonacci heap


In this paper we discuss a new data structure for
implementing heaps. Our structure, Fibonacci
heaps, are similar to binomial queues. Fibonacci
Heap is a collection of trees with min-max heap
property.
Introduction
A heap is an abstract data structure
consisting of a set of items, each with a real valued The four pointers in each node indicates the left
key, subject to the following operations: sibling, the parent, some child and the right
make heap: Return a new, empty heap. sibling. The centre field in each node is its key.
insert(i,h) : Insert a new item i with Rank and mark bits are not shown.
predefined key into heap h. Insert a node in Fibonacci heap
find min(h): Return an item of minimum
key in heap h. This operation After
does not change h. H (min) inserting (2)
delete min(h): Delete an item of minimum H (min)
key from heap h and return.

Significant Study Union of two Fibonacci heaps H1 and H2


H1(min) H2(min)
A Fibonacci heap is a collection of item-disjoint
heap-ordered trees. We impose no explicit Union
constraints on both number or structure of the
H (min)
trees.
Below are amortized time complexities of
Fibonacci heap
find min: Θ(1) [Same as both binary For delete min operation it is necessary to find
and binomial.] pairs of tree roots of the same rank to link.
delete min: Θ(log n) [Θ(log N) in both
binary and binomial.] The decrease and delete key operations
insert: Θ(1) [Θ(log N) in binary and
Θ(1) in binomial.]
decrease-key: Θ(1) [Θ(log N) in both binary
and binomial.]
union: Θ(1) [Θ(M log N) or Θ(M+N) in The original heap
binary and Θ(log N) in
binomial.]
Fibonacci Heap maintains a pointer to the root
value of a tree. All tree roots are connected to
each other using circular doubly linked list, so all of
After reducing key 10 to 6. The minimum
them are accessible using single ‘min’ pointer. node is still the node containing 3.
This are known as Fibonacci heaps because
Fibonacci numbers are used in the running time
analysis. Also, every node in Fibonacci Heap has
After deleting key 7.
degree at most Θ(log N) and the size of a subtree
rooted in a node of degree k is at least Fk+2, where
Fk is the kth Fibonacci number. Conclusion
Example of a Fibonacci heap Fibonacci heap is a data structure consisting of
collection of trees. It has better amortized running
time. It improves Dijkstra’s shortest path algorithm
from Θ (E log V) to Θ (E+V log V). It is a heap
ordered tree with minimum node pointed to by
the pointer and some nodes marked. Fibonacci
heap takes a amortized time of Θ (1) to make
heap, insert, find min, union, decrease key and is
Empty operations and a Θ (log N) amortized time
for delete-min and delete operations.

You might also like