package me.ramswaroop.linkedlists;
import me.ramswaroop.common.SingleLinkedList;
import me.ramswaroop.common.SingleLinkedNode;
/**
* Created by IntelliJ IDEA.
*
* @author: ramswaroop
* @date: 6/21/15
* @time: 10:20 PM
*/
public class InsertInSortedList<E extends Comparable<E>> extends SingleLinkedList<E> {
/**
* Inserts an element in the sorted linked
* list maintaining the sorted property.
*
* @param item
*/
public void insert(E item) {
SingleLinkedNode<E> node = head;
while (node != null) {
if (node.item.compareTo(item) > 0) { // new node is to be inserted before head
head = new SingleLinkedNode<>(item, node);
return;
} else if (node.next == null || node.next.item.compareTo(item) > 0) { // new node to be inserted anywhere else
node.next = new SingleLinkedNode<>(item, node.next);
return;
}
node = node.next;
}
}
public static void main(String a[]) {
InsertInSortedList<Integer> linkedList = new InsertInSortedList<>();
linkedList.add(00);
linkedList.add(11);
linkedList.add(22);
linkedList.add(33);
linkedList.printList();
linkedList.insert(-2);
linkedList.insert(9);
linkedList.insert(44);
linkedList.printList();
}
}