Question: import java.io.*; import java.util.*; /** * StackSort is a program that will use two stacks to sort an array of integer values. * * @author

import java.io.*;

import java.util.*;

/**

* StackSort is a program that will use two stacks to sort an array of

integer values.

*

* @author Charles Hoot

* @version 4.0

*/

public class StackSort {

public static void main(String args[]) {

int data[] = null;

int result[] = null;

Scanner input;

input = new Scanner(System.in);

System.out.println("This program sorts an array of integer

values.");

// Create an empty array of integers

data = createArray(0, 1, 1);

System.out.println("Original array is: " +

representationOfArray(data));

result = doStackSort(data);

System.out.println("Sorted array is: " +

representationOfArray(result));

System.out.println();

// Create an array with one integer

data = createArray(1, 0, 9);

System.out.println("Original array is: " +

representationOfArray(data));

result = doStackSort(data);

System.out.println("Sorted array is: " +

representationOfArray(result));

System.out.println();

// Create an array with two integers

data = createArray(2, 0, 9);

System.out.println("Original array is: " +

representationOfArray(data));

result = doStackSort(data);

System.out.println("Sorted array is: " +

representationOfArray(result));

System.out.println();

// Create an array with 10 integers

data = createArray(10, 0, 9999);

System.out.println("Original array is: " +

representationOfArray(data));

result = doStackSort(data);

System.out.println("Sorted array is: " +

representationOfArray(result));

System.out.println();

// Create an array with 20 integers

data = createArray(20, 0, 9);

System.out.println("Original array is: " +

representationOfArray(data));

result = doStackSort(data);

System.out.println("Sorted array is: " +

representationOfArray(result));

System.out.println();

System.out.println("Please enter the number of values to sort");

int size = getInt(" It should be an integer value greater than

or equal to 1.");

// Create an array of the given size

data = createArray(size, 0, 99);

System.out.println("Original array is: " +

representationOfArray(data));

result = doStackSort(data);

System.out.println("Sorted array is: " +

representationOfArray(result));

System.out.println();

}

/**

* Use two stacks to sort the data in an array

*

* @param data An array of integer values to be sorted.

* @return An array of sorted integers.

*/

private static int[] doStackSort(int data[]) {

int result[] = new int[data.length];

// ADD CODE HERE TO SORT THE ARRAY USING TWO STACKS

return result;

}

/**

* Load an array with data values

*

* @param size The number of data values to generate and place in the

array.

* @param min The minimum value to generate.

* @param max The maximum value to generate.

* @return An array of randomly generated integers.

*/

private static int[] createArray(int size, int min, int max) {

Random generator = new Random();

// If we get a negative size, just make the size 1

if (size < 0) {

size = 1;

}

// We need max > min for the random number generator to be happy

if (max <= min) {

max = min + 1;

}

int[] data = new int[size];

for (int i = 0; i < size; i++) {

data[i] = min + generator.nextInt(max - min);

}

return data;

}

/**

* Create a string with the data values from an array

*

* @param data An array of integer values.

* @return A string representation of the array.

*/

private static String representationOfArray(int data[]) {

String result = new String("< ");

for (int i = 0; i < data.length; i++) {

result += data[i] + " ";

}

result += ">";

return result;

}

/**

* Get an integer value

*

* @return An integer.

*/

private static int getInt(String rangePrompt) {

Scanner input;

int result = 10; //default value is 10

try {

input = new Scanner(System.in);

System.out.println(rangePrompt);

result = input.nextInt();

} catch (NumberFormatException e) {

System.out.println("Could not convert input to an integer");

System.out.println(e.getMessage());

System.out.println("Will use 10 as the default value");

} catch (Exception e) {

System.out.println("There was an error with System.in");

System.out.println(e.getMessage());

System.out.println("Will use 10 as the default value");

}

return result;

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!