public class Link {
public long lData;
public Link next;
public Link(long lData){
this.lData=lData;
}
}
public class SortedList {
private Link first;
public SortedList(){
first =null;
}
public SortedList(Link[] linkArr){
first=null;
for(int j=0;j<linkArr.length;j++){
insert(linkArr[j]);
}
}
public void insert(Link k){
Link previous =null;
Link current=first;
while(current!=null&&k.lData>current.lData){
previous=current;
current=current.next;
}
if(previous==null){
first=k;
}
else
previous.next=k;
k.next=current;
}
public Link remove(){
Link temp =first;
first=first.next;
return temp;
}
}
public class ListInsertionSortApp {
/**
* @param args
*/
public static void main(String[] args) {
int size =10;
Link[] linkArray =new Link[size];
for(int j=0;j<size;j++){
int n = (int) (Math.random()*99);
Link newLink =new Link(n);
linkArray[j]=newLink;
}
System.out.print("Unsorted array:");
for(int j=0;j<size;j++){
System.out.print(linkArray[j].lData+" ");
}
System.out.println();
SortedList theSortedList = new SortedList(linkArray);
for(int j=0;j<size;j++){
linkArray[j]=theSortedList.remove();
}
System.out.print("Sorted array:");
for(int j=0;j<size;j++){
System.out.print(linkArray[j].lData+" ");
}
}
}