graph algorithms /*pseudocode sketch of the vertex structure in real ++path would be of type vertex *and many of the code fragments that we describe require either dereferencing or use the -operator instead of the operator needless to saythis obscures the basic algorithmic ideas *struct vertex list adj/adjacency list bool knowndisttype dist/disttype is probably int vertex path/probably vertex *as mentioned above /other data and member functions as needed }figure vertex class for dijkstra' algorithm (pseudocode/*print shortest path to after dijkstra has run assume that the path exists *void graph::printpathvertex ifv path !not_a_vertex printpathv path )cout <to "cout <vfigure routine to print the actual shortest path over the previous bound for sparse graphs since priority queues do not efficiently support the find operationthe location in the priority queue of each value of di will need to be maintained and updated whenever di changes in the priority queue if the priority queue is implemented by binary heapthis will be messy if pairing heap (is usedthe code is not too bad an alternate method is to insert and the new value dw into the priority queue every time ' distance changes thusthere may be more than one representative for each vertex in the priority queue when the deletemin operation removes the smallest vertex from the priority queueit must be checked to make sure that it is not already known andif