Start off by creating a new application in class Lab06
of package edu.unca.cs.csci202.
Add a second class to your project using the following as the project source
package edu.unca.cs.csci202;
/**
*
* @author J Dean Brock <brock@unca.edu>
*/
public class GenNode<T> {
private T item ;
private GenNode<T> next ;
GenNode(T item, GenNode<T> next) {
this.item = item ;
this.next = next ;
}
GenNode(T item) {
this(item, null) ;
}
GenNode() {
this(null, null) ;
}
public T getItem() {
return item ;
}
public GenNode<T> getNext() {
return next ;
}
public void setItem(T item) {
this.item = item ;
}
public void setNext(GenNode<T> next) {
this.next = next ;
}
}
Within your Lab06 class add the following two methods.
private static GenNode<Integer> makeGenNodeList(int size) {
GenNode<Integer> ref = null ;
for (int i=size-1; i>=0 ; --i) {
ref = new GenNode<>(i, ref) ;
}
return ref ;
}
private static int sumGenNodeList(GenNode<Integer> node) {
int sum = 0 ;
while (node != null) {
sum = sum + node.getItem() ;
node = node.getNext() ;
}
return sum ;
}
Task 1
Using the makeGenNodeList and
sumGenNodeList methods create a list of
three elements and sum up all its integers.
Task 2
Use the debugger to stop your program before the call to
sumGenNodeList and examine the list of three
elements. You should be able to follow the links.
Task 3
Add an additional makeGenNodeList method with
two arguments, that first is a starting integer and the second
is the length.
For example, the call makeGenNodeList(3, 3)
generate a list that contains 3, 4, and 5.
Call your new routine to generate the list
containing 3, 4, and 5 and use sumGenNodeList to test your code.
By the way, it is perfectly OK to have two methods with the same name. This is called polymorpism.
Task 4
Write a method that is passed a GenNode that is
the head of a list and returns the GenNode
that is the tail of the list.
Your method will traverse the entire list until it reaches
one whose next element is null.
If your routine is passed null, it should also return
null.
Test your routine on the two lists you have created.
Task 5
If you didn’t write a generic method in
Task 4, modify your routine for be generic.
Take a look at the
Java tutorial on generic methods or your textbook to see how this is
done.
Start by putting <T> before the return type.
Of course, you do need to test your new method.
Task 6
Now write a routine that takes two parameters, a
GenNode l and
an integer n and prints the
first n elements of l.
If l has less than
n elements, stop at the last.