Extend Programming Problem 3 by adding ADT operations such as isConnected and hasCycle . Also, include operations that perform a topological sort for a directed graph without cycles, determine the DFS and BFS spanning trees for a connected graph, and determine a minimum spanning tree for a connected undirected graph.
Programming Problem 3:
Repeat Programming Problems 1 and 2, but allow the graph to be either weighted or unweighted and either directed or undirected.
Programming Problems 1:
Write a C++ class derived from Graph Interface, as given in Listing 20-1. Use an adjacency matrix to represent the graph.
Programming Problems 2:
Repeat the previous programming problem, but represent the graph using an adjacency list instead of an adjacency matrix.