This is to be written in Java CMSC 350 Project 3 The third p
This is to be written in Java.
CMSC 350 Project 3
The third programming project involves writing a program that performs a sort by using a binary search tree. The program should be able to sort lists of integers or lists of fractions in either ascending or descending order. One set of radio buttons should be used to determine whether the lists contain integers or fractions and a second set should be used to specify the sort order. The main class should create the GUI shown below:
Pressing the Perform Sort button should cause all the numbers in the original list to be added to a binary search tree. Then an inorder traversal of the tree should be performed to generate the list in sorted order and that list should then be displayed in the sorted list text field.
In addition to the main class that defines the GUI, you should have a generic class for the binary search tree. That class needs a method to initialize the tree, one that allows a new value to be inserted in the tree and one that performs an inorder tree traversal that generates and returns a string that contains the tree elements in sorted order. The insert method does not need to rebalance the tree if it becomes unbalanced. It should allow duplicate entries and it must be written using recursion. It is not necessary to have a method to delete a node from the tree nor one to check whether a particular value is in the tree.
The third class required for this project is one that defines fractions. It should have a constructor that accepts a string representation of a fraction and a toString method. It must implement the Comparable interface, which means a compareTo method is also required.
A second example of a run of this program is shown below that sorts fractions in descending order:
The only error checking required of this program is to check for nonnumeric input which
includes improperly formatted fractions such as 3/4/8. Such malformed fractions should cause
a NumberFormatExpression to be thrown. The main class must catch these exceptions and
display an appropriate error message as shown below:
Solution
private void jMenu1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int c, n, d, swap; Scanner in = new Scanner(System.in); n=in.nextInt(); int array[] = new int[n]; for (c = 0; c < n; c++) { array[c]= in.nextInt(); for(c=0;c < (n-1);c++) { for (d=0; d < n-c-1;d++) { if(array[d]>array[d+1]) { swap=array[d]; array[d]=array[d+1]; array[d+1]=swap; } } } for ( c=0;c