$29
PROGRAM DESCRIPTION
In this short BONUS C++ program, you will use concepts from Chapter 8. You will initially start with a fixed set of 8 disjoint sets using the integer elements 0 through 7 and support the find and union operations on the set(s), where the union operation uses the union-by-size algorithm, as described in class.
You will then add another operation called split that undoes the last union operation that has not already been undone. Although you may assume a fixed array of 8 elements for this, note that the find, union, and split operations may come in any order, even repeated split operations. You should make any necessary (but hopefully simple) changes to support this new operation.
You may assume that the user enters the proper data type, but be sure to add any needed error handling. See SAMPLE OUTPUT for details on what the output looks like.
REQUIREMENTS
• Your code should be well documented in terms of comments. For example, good comments in general consist of a header (with your name, course section, date, and brief description), comments for each variable, and commented blocks of code.
• Your program will be graded based largely on whether it works correctly on the CSE machines (e.g., cse01, cse02, …, cse06), so you should make sure that your program compiles and runs on a CSE machine.
• You should contact your instructor if there is any question about what is being asked for.
• This is an individual programming assignment that must be the sole work of the individual student. Any instance of academic dishonesty will result in a grade of “F” for the course, along with a report filed into the Academic Integrity Database.
SAMPLE OUTPUT (input shown in bold):
$-------------------------./a.out
+
+
0
1
2
3
4
5
6
|
7 |
|-1-1-1-1-1-1-1-1|
+-------------------------+
Enter option choice 1 - 4:
(1) Find Operation
(2) Union-By-Size Operation
(3) Split Operation
(4) Exit Program
• 5
Enter option choice 1 - 4:
(1) Find Operation
(2) Union-By-Size Operation
1
CSCE 3110 – Project 5 (BONUS)
Due: 11:59 PM on Friday,
(3) Split Operation
(4) Exit Program
• 1
Enter 1
set
#: 5
Parent-------------------------of5
is 5
+
+
0
1
2
3
4
5
6
|
7 |
|-1-1-1-1-1-1-1-1|
+-------------------------+
Enter option choice 1 - 4:
(1) Find Operation
(2) Union-By-Size Operation
(3) Split Operation
(4) Exit Program
• 2
Enter-------------------------2
set #s: 4
5
+
+
0
1
2
3
4
5
6
7
|
|
|-1-1-1-1-2
4-1-1|
+-------------------------
+
Enter option choice 1 - 4:
(1) Find Operation
(2) Union-By-Size Operation
(3) Split Operation
(4) Exit Program
• 2
Enter-------------------------2
set #s: 6
7
+
+
0
1
2
3
4
5
6
7
|
|
|-1-1-1-1-2
4 -2
6 |
+-------------------------
4:
+
Enter option choice 1 -
(1) Find Operation
(2) Union-By-Size Operation
(3) Split Operation
(4) Exit Program
• 2
Enter-------------------------2
set #s: 4 6
+
+
0
1
2
3
4
5
6
7
|
|
|-1-1-1-1-4
4
4
6 |
+-------------------------
4:
+
Enter option choice 1 -
(1) Find Operation
(2) Union-By-Size Operation
(3) Split Operation
(4) Exit Program
• 2
Enter-------------------------2
set
#s: 4 3
+
+
0
1
2
3
4
5
6
|
7 |
2
CSCE 3110 – Project 5 (BONUS)
|-1-1-1 4-5 4 4
6 |
+-------------------------
+
Enter option choice 1 -
4:
(1) Find Operation
(2) Union-By-Size Operation
(3) Split Operation
(4) Exit Program
• 1
Enter 1
set
#: 3
Parent-------------------------of3
is 4
+
+
0
1
2
3
4
5
6
7
|
|
|-1-1-1
4 -5
4
4
6 |
+-------------------------
+
Enter option choice 1 - 4:
(1) Find Operation
(2) Union-By-Size Operation
(3) Split Operation
(4) Exit Program
• 1
Enter 1
set
#: 7
Parent-------------------------of7
is 4
+
+
0
1
2
3
4
5
6
7
|
|
|-1-1-1
4 -5
4
4
6 |
+-------------------------
+
Enter option choice 1 - 4:
(1) Find Operation
(2) Union-By-Size Operation
(3) Split Operation
(4) Exit Program
• 3
+-------------------------
0
1
2
3
4
5
6
7
+
|
|
|-1-1-1-1-4
4
4
6 |
+-------------------------
4:
+
Enter option choice 1 -
(1) Find Operation
(2) Union-By-Size Operation
(3) Split Operation
(4) Exit Program
• 3
+-------------------------
0
1
2
3
4
5
6
7
+
|
|
|-1-1-1-1-2
4 -2
6 |
+-------------------------
1 -
4:
+
Enter option choice
(1) Find Operation
(2) Union-By-Size Operation
(3) Split Operation
(4) Exit Program
3
CSCE 3110 – Project 5 (BONUS)
Due: 11:59 PM on Friday,
• 3
+-------------------------
0
1
2
3
4
5
6
7
+
|
|
|-1-1-1-1-2
4-1-1|
+-------------------------
1-4:
+
Enter option choice
(1) Find Operation
(2) Union-By-Size Operation
(3) Split Operation
(4) Exit Program
• 3
+-------------------------
0
1
2
3
4
5
6
+
|
7 |
|-1-1-1-1-1-1-1-1|
+-------------------------+
Enter option choice 1 - 4:
(1) Find Operation
(2) Union-By-Size Operation
(3) Split Operation
(4) Exit Program
• 3
No last union operation
- unable to perform operation
+-------------------------
0
1
2
3
4
5
6
7
+
|
|
|-1-1-1-1-1-1-1-1|
+-------------------------
4:
+
Enter option choice 1 -
(1) Find Operation
(2) Union-By-Size Operation
(3) Split Operation
(4) Exit Program
• 4
SUBMISSION:
• You will electronically submit your source code file(s) and a README file where you explain all the information required for the grader to grade your program (i.e., how to compile and run it, an example, how you did it, etc.) to the Project 5 BONUS dropbox in Canvas by the due date.
• This programming assignment is optional, but can be used as extra credit. Students completing this assignment can earn bonus points towards the overall grade, even if your programming assignments grade exceeds 100. If you choose not to attempt it, it will not be counted against you. However, since this bonus assignment is due on the last day of class, no late assignments will be accepted for credit.
4