An implementation of Prim's algorithm is shown in Program .
This implementation is almost identical
to the version of Dijkstra's algorithm
given in Program
.
In fact, there are only four differences between the two algorithms.
These are found on lines 3, 29, 39, and 41.
The PrimsAlgorithm method takes two arguments.
The first is an undirected graph instance.
We assume that the graph is edge-weighted
and that the weights are instances of the
Int class defined in Program .
The second argument is the number of the start vertex,
.
The PrimsAlgorithm method returns a minimum-cost spanning tree represented as an undirected graph. Therefore, the return value is a Graph.
The running time of Prim's algorithm is asymptotically the same as Dijkstra's algorithm. That is, the worst-case running time is
when adjacency lists are used, and
when adjacency matrices are used to represent the input graph.