• 05-11-2012, 12:52 PM
cherrychives
I need to create my own linked list containing random integers and then sort them using an 'insertion' method, i.e. create a temporary linked list and individually add each integer from the original linked list into that one, sorting them during that process.

The size is received from the console, and the integer VALUES cannot be larger than the size. So if the size is 100, the list will contain 100 integers will be\ between 1 and 100.

Code:

``` import java.util.Random; class intNode {     public int value;     public int next;     public intNode nextNode;     public intNode(int x) {                value = x;         next = 0;     }     public void printNode() {         System.out.print("(" + value + ", " + next + ") ");     } } class intList {         public intNode first;         public int size;         public intList(int x){                 first = null;                 size = x;         }         public void createList(){                 Random rand = new Random();                 for(int i = size; i > 0; i--){                         int r = rand.nextInt(size);                         insertFirst(r);                 }         }         public boolean isEmpty() {                 return first == null;         }         public void insertFirst(int x) {                 intNode node = new intNode(x);                 node.nextNode = first;                 first = node;                 if(first.nextNode != null){                         first.next = first.nextNode.value;                 }         }         public void insert(int val, int pos){                 intNode node = new intNode(val);                 intNode current = first;                 for(int i = 0; i < pos; i++){                         current = current.nextNode;                 }                 node.next = current.next;                 current.next = node.value;                 node.nextNode = current.nextNode;                 current.nextNode = node;         }         public int getpos(int x){                 intNode current = first;                 int i = 0;                 while(current.next <= x  && current.nextNode != null){             current = current.nextNode;                         i++;         }                 return i;         }         public intNode deleteFirst() {                 intNode temp = first;                 first = first.nextNode;                 return temp;         }         public void printList() {                 intNode current = first;                 System.out.print("List: ");                 while(current != null) {                         current.printNode();                         current = current.nextNode;                 }                 System.out.println("");         } } class llmain{         private static intList sort(intList a){                 intList temp = new intList(a.size);                 if(a.first != null){                         temp.first = a.first;                         a.deleteFirst();                 }                 while(a.first != null){                         int x = a.first.value;                         if(x < temp.first.value){                                 temp.insertFirst(x);                         }                         else{                                 int pos = temp.getpos(x);                                 temp.insert(x, pos);                         }                         a.deleteFirst();                 }                 return temp;         }             public static void main(String[] args) {                 String in = args[0];                 String sortType = args[1];                 System.out.println("Sort " + Integer.parseInt(in) + " values using " + sortType);                 intList list = new intList(Integer.parseInt(in));                 list.createList();                 list.printList();                 sort(list);                 list.printList();     } }```
The problem is with my sort method. i.e. after main executes list.printList(), the list is printed to the console, but then it just hangs.

• 05-11-2012, 01:45 PM
JosAH
Does it really have to be an insertion sort method? There are way more efficient methods to build a sorted list for those numbers ...

kind regards,

Jos
• 05-11-2012, 01:51 PM
cherrychives