In this paper the authors develop a new data structure for implementing heaps (priority queues). The present structure, Fibonacci heaps (abbreviated F-heaps), extends the binomial queues proposed by Vuillemin and studied further by Brown. F-heaps support arbitrary deletion from an n-item heap in
amortized time and all other standard heap operations in O(1) amortized time. Using F-heaps the authors are able to obtain improved running times for several network optimization algorithms. In particular, they obtain the following worst-case bounds, where n is the number of vertices and m the number of edges in the problem graph: (1)
for the single-source shortest path problem with nonnegative edge lengths, improved from
; (2)
for the all-pairs shortest path problem, improved from
; (3)
for the assignment problem (weighted bipartite matching), improved from
; (4)
for the minimum spanning tree problem, improved from
, where
. Note that
if
. Of these results, the improved bound for minimum spanning trees is the most striking, although all the results give asymptotic improvements for graphs of appropriate densities.