COMP3023 Design and Analysis of Algorithms
Fall 2023
Programming Assignment
Instructions:
Write a program that can return any three of the following four artifacts from a given weighted,
undirected graph: (Note each numbered item is considered as one artifact.)
-
A Depth-First Search (DFS) Tree (Lecture06)
-
All its Articulation Points (AP) and Biconnected Components (BC) (Lecture06)
-
A Minimum Spanning Tree (MST), using Kruskal’s Algorithm (Lecture08)
-
The Shortest Path Tree (SPT), using Dijkstra’s Algorithm (Lecture09)
The input to your program is a data file named graph.txt, which specifies 1) the number of vertices (int), 2) the number of edges (int), 3) each edge’s two vertices and its weight (int). A sample input file is shown in Figure 1, along with the actual graph that it represents:
6
8
0, 1, 3
0, 2, 3
0, 3, 4
1, 3, 3
2, 3, 2
3, 4, 4
3, 5, 2
4, 5, 4
14
334 0434 322
25
Figure 1 A sample input file with the graph it represents
Your program shall read the file name from keyboard, read the graph information from the file, run the above-mentioned four algorithms, and display the results on the console. Your program shall repeatedlyaskforaninputdatafileuntiltheuserpress"CTRL+Z". Asampleofconsoleoutputisgivenonthe next page, in Figure 2.
Submission:
-
Please write your program in C or C++.
Put all your code in one single file and name it PA_#######.cpp, where ####### is your student ID.
Build an executable file and name it PA_#######.exe.
Pack the .cpp and .exe files into a zip file and name it PA_#######.zip. -
Please make sure your program can be executed. An unexecutable program will automatically yield a grade of zero.
1
-
Comment your code when appropriate. Inside the comments, you are responsible of providing a full disclosure of all external reference materials that you have used, such as links to a public webpage, a video tutorial, or even a public repository. Failing to do so may yield a penalty.
-
Reusing another student’s program is strictly prohibited. Plagiarism checking will be conducted prior to grading. Any case of violation of UIC’s honor code will yield a grade of zero and a report to Student Affairs Office.
***************
Input the file name:
graph.txt
***************
1. The following are the edges in the constructed DFS Tree
0--1 1--3 2--3 3--4 4--5
***************
2. The articulation point(s) found in the given graph is/are:
Vertex 3
The biconnected component(s) found in the given graph is/are:
0--1 0--2 0--3 1--3 2--3
3--4 3--5 4--5
***************
3. The following are the edges in the constructed MST:
0--1 1--3 2--3 3--4 3--5
***************
4. The following are the edges in the constructed SPT:
0--1 0--2 0--3 3--4 3--5
***************
Input the file name:
Figure 2. Sample console output