
To run Dijkstra's algorithm, you will need to use a priority queue that uses a minheap. You can find a C# implementation online. Here is an
implementation that has been used before. It needs to be modified so that it uses a minheap instead of a maxheap.
Also, you will probably need to alter the priority queue so that it can perform the decreasekey operation on nonroot nodes as described in the text (p. 135).

