COMP3023 Design and Analysis of Algorithms
Fall 2023
Programming Assignment
Submission by Dec. 6, 2023
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.)
1. A Depth-First Search (DFS) Tree (Lecture06)
2. All its Articulation Points (AP) and Biconnected Components (BC) (Lecture06)
3. A Minimum Spanning Tree (MST), using Kruskal’s Algorithm (Lecture08)
4. 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
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
repeatedly ask for an input data file until the user press CTRL+Z . A sample of console output is given on the
next page, in Figure 2.
Submission:
1. 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.
2. Please make sure your program can be executed. An unexecutable program will
automatically yield a grade of zero.
1 4
3 3 4
0 4 3 4
3 2 2
2 5
2
***************
Input the file name:
graph.txt
***************
1. The following are the edges in the constructed DFS Tree
0尊龙人生就是博d88--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:
3. 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.
4. 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.
请加QQ:99515681 或邮箱:[email protected] WX:codehelp