Programming assignment 5, due Friday, June 4, 10AM. --------------- finding cut vertices and s-t cut vertices -------- Instructions: 1. Your assignment is to complete the file ./find_cut_vertices.cc . In that file, you will need to finish the function find_cut_and_st_cut_vertices(). The input is a graph G and two vertices s and t. The routine should figure out which vertices are cut vertices (recall that a vertex is a cut vertex when its removal disconnects the graph). It should also figure out which vertices are s-t cut vertices. By an s-t cut vertex, I mean a vertex v (other than s or t) such that removing v disconnects s from t. (In other words, all s->t paths go through v.) The routine should return a hash table H of type Hashtable H; where vertex_cut_info is a struct as follows: struct vertex_cut_info { bool cut; bool st_cut; }; For each vertex v, H[v].cut should be true if v is a cut vertex. H[v].st_cut should be true if v is an s-t cut vertex (as defined above). 2. When you complete step 1, run "make" to compile, then run "make test" to test it. 3. Turn in the single file find_cut_vertices.cc. If you want, you can also turn in any of the class definition files in ./Include that you modify. ---- hints: First implement the algorithm for finding cut vertices, as described in class earlier in the term (using low numbers, etc, see http://www.cs.ucr.edu/~neal/cs141/index.cgi?CutVerticesByDFS). Try to get this working by the end of this week. DON'T WAIT TIL NEXT WEEK, of course. Once you have this working, think about how to extend it to find s-t cut vertices also. Think about it carefully and design the algorithm fully before you start to implement it. If you don't get the second part working (s-t cut vertices) then have your routine set all st_cut vertex fields to false. You will still get significant partial credit. You can find test cases and sample solutions in the Mazes subdirectory.