In this program you are required to implement the BFS and DFS algorithms.
- Request the user to determine the order (|V|) and size (|E|) of the graph.
- Generate |E| random edges into the adjacency matrix/list (Adj) to make a random directed
- Print the resulting adjacency matrix/list.
- Request the user to determine the starting vertex (u) for BFS and DFS_visit algorithms
- Call BFS function to find the vertices reachable from vertex u and print the shortest paths and their lengths/distances.
- Call DFS_visit function to find the vertices reachable from vertex u and for each vertex print the start/finish time.
Part B. In this part, we print the topological order of the vertices
- Run DFS function to check if the graph is a DAG (directed acyclic graph):
- Search for backward edges. If there are any, (the graph has a cycle.) print: “Cycle detected, topological sort is impossible”.
- If the graph is DAG, (while running DFS):
- Insert the vertex into a linked list as it finishes.
- Using your linked list, print the topological order of the vertices along with their start/finish time.