Java Data Structure How to - Create a Sorted List








Question

We would like to know how to create a Sorted List.

Answer

//w  ww  .  j a  va2 s . c o  m
public class Main{
  public static void main(String[] args) { 
    SortedList theSortedList = new SortedList();
    theSortedList.insert(20); 
    theSortedList.insert(40);

    theSortedList.displayList(); 

    theSortedList.insert(10); 
    theSortedList.insert(30);
    theSortedList.insert(50);

    theSortedList.displayList(); 

    theSortedList.remove(); 

    theSortedList.displayList(); 
  } 

}
class SortedList {
  private Link first; 

  public SortedList() {
    first = null;
  }

  public boolean isEmpty(){
    return (first == null);
  }

  public void insert(long key){
    Link newLink = new Link(key); 
    Link previous = null; 
    Link current = first;

    while (current != null && key > current.data) {
      previous = current;
      current = current.next;
    }
    if (previous == null)
      first = newLink; 
    else
      previous.next = newLink; 
    newLink.next = current; 
  }

  public Link remove() { 
    Link temp = first; 
    first = first.next;
    return temp; 
  }

  public void displayList() {
    System.out.print("List: ");
    Link current = first; 
    while (current != null){
      current.displayLink(); 
      current = current.next;
    }
    System.out.println("");
  }

  class Link {
    public long data; 
  
    public Link next; 
  
    public Link(long dd) {
      data = dd;
    }
  
    public void displayLink() {
      System.out.print(data + " ");
    }
  }
}

The code above generates the following result.