A good test would be to generate random integers, insert them into the list, then print out the list to see if it is in order.
Here is a testing program:
// OLLTesterRandom.java // import java.util.* ; public class OLLTesterRandom { public static void main( String[] args ) { OrderedLinkedList list = new OrderedLinkedList(); Scanner scan = new Scanner( System.in ); Random rand = new Random(); System.out.print("How many nodes? "); int numNodes = scan.nextInt(); for ( int j = 0; j < numNodes; j++ ) { list.insertInOrder( rand.nextInt(1001) ); } list.traverse(); } }
Here is a test run:
PS C:\JavaSource> javac OLLTesterRandom.java OrderedLinkedList.java Node.java PS C:\JavaSource> java OLLTesterRandom How many nodes? 20 38, 52, 79, 212, 236, 239, 261, 262, 330, 393, 615, 716, 729, 730, 761, 796, 819, 857, 860, 931 PS C:\JavaSource>
This code works as expected, but there is a serious problem. What is it?
Say a linked list has grown to be 10,000 nodes long. (This could easily happen in a realistic situation.) How often will a new node be inserted at the end?