This is a sample programming test. All of the recursive methods you are asked to write operate on lists; this may not be the case for the actual test.

In eclipse:

- Create a new Java Project (perhaps called
`test3`

) - In your project, create a new Package called
`cse1030.test3`

Complete the utility class `IntegerLists`

which provides
three methods that operate on lists of integers. You MAY NOT add
any additional import statements, except for testing purposes.
Your methods
must be recursive, and may use only the following methods from
`List`

:

- isEmpty()
- size()
- get(int index)
- set(int index, E element)
- subList(int fromIndex, int toIndex)

The methods that you need to implement are described below.

`public static Integer minimum(List<Integer> t)`

This method finds the minimum integer in a list. The minimum element in a list

`t`

can be found recursively as:```
Math.min(first, u)
```

where

`first`

is the first element in `t`

, and
`u`

is the original list `t`

with the first
element removed.

`public static int indexOf(Integer i, List<Integer> t)`

This method finds the index of the first occurrence of the integer

`i`

in the list `t`

; it returns `-1`

if `i`

is not `equals`

to some element in `t`

.
A similar method for `LinkedList`

was discussed in the lectures
on Tue Nov 19 and Thu Nov 21.

`public static void sort(List<Integer> t)`

This method sorts a list

`t`

so that the elements are
in ascending order. Perhaps the easiest way to recursively sort a list
is to:
- find the minimum element
`m`

in the list*[Hint: Use your freshly implemented*`minimum`

method] - find the index of
`m`

in the list*[Hint: Use your freshly implemented*`indexOf`

method] - swap the first element of the list and
`m`

(this moves the smallest element of the list to front of the list)*[Hint: Use the list method*`set`

twice] - recursively sort the sublist
`u`

, where`u`

is the sublist of`t`

starting from the second element of`t`

Now complete the controller for the following GUI application:

The application allows the user to type in a string of integers
(separated by spaces). When the user presses the ```
Process
the list
```

button, the string is converted into a list
of integers, and the list is processed to:

- display the list as a string
- display the minimum element in the list
- display the index of the minimum element
- display the list after it is sorted

You should be able to infer the sequence of method invocations required by examining the APIs for the model and view.

The API for all of the classes in this test can be found at the following link:

You will require the following the JAR file:

Starter code for the two classes is available:

Note that the GUI also serves as a test program.