document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. public class LinkedList {
  2.     private Node first;
  3.     private Node last;
  4.     private Node current;
  5.  
  6.     public LinkedList() {
  7.         first = last = current = null;
  8.     }
  9.    
  10.     public boolean isEmpty() {
  11.         return (first == null);
  12.     }
  13.  
  14.     public void insertAtFront(Object insertItem) {
  15.         Node newNode = new Node(insertItem);
  16.         if(isEmpty()) {
  17.             first = newNode;
  18.             last = newNode;
  19.         }
  20.         else {
  21.             newNode.next = first;
  22.             first = newNode;
  23.         }
  24.     }
  25.  
  26.     public void insertAtBack(Object insertItem) {
  27.         Node newNode = new Node(insertItem);
  28.         if(isEmpty()) {
  29.             first = newNode;
  30.             last = newNode;
  31.         }
  32.         else {
  33.             last.next = newNode;
  34.             last = newNode;
  35.         }
  36.     }
  37.  
  38.     public Object removeFromFront() {
  39.         Object removeItem = null;
  40.         if(isEmpty) {
  41.             return removeItem;
  42.         }
  43.         removeItem = first.data;
  44.         if(first == last) {
  45.             first = last = null;
  46.         }
  47.         else {
  48.             first = first.next;
  49.         }
  50.         return removeItem;
  51.     }
  52.  
  53.     public Object removeFromBack() {
  54.         Object removeItem = null;
  55.         if(isEmpty()) {
  56.             return removeItem;
  57.         }
  58.         removeItem = last.data;
  59.         if(first == last) {
  60.             first = last = null;
  61.         }
  62.         else {
  63.             current = first;
  64.             while(current.next != last) {
  65.                 current = current.next;
  66.             }
  67.             last = current;
  68.             last.next = null;
  69.         }
  70.         return removeItem;
  71.     }
  72.  
  73.     public Object getFirst() {
  74.         if(isEmpty()) {
  75.             return null;
  76.         }
  77.         else {
  78.             current = first;
  79.             return current.data;
  80.         }
  81.     }
  82.     public Object getNext() {
  83.         if(current == last) {
  84.             return null;
  85.         }
  86.         else {
  87.             current = current.next;
  88.             return current.data;
  89.         }
  90.     }
  91. }
');