ordered linked list
mengurutkan data pada linkedlist
berikut coding dengan menggunakan NetBeans
package orderedlinklist;
class Node{
int data;
Node prev;
Node next;
}
public class OrderedLinkList {
static Node head,tail;
static void traverse(){
Node x = head;
while(x != null){
System.out.print(x.data + " - ");
x = x.next;
}
System.out.println("");
}
static void insert(int new_data){
Node new_node = new Node();
new_node.data = new_data;
if(head == null && tail == null){
head = new_node;
tail = new_node;
}else if(new_node.data <= head.data){
new_node.next = head;
head.prev = new_node;
head = new_node;
}else if(new_node.data >= tail.data){
new_node.prev = tail;
tail.next = new_node;
tail = new_node;
}else{
Node position = head;
while(position != null && position.data < new_node.data){
position = position.next;
}
if(position != null){
new_node.next = position;
new_node.prev = position.prev;
position.prev = new_node;
new_node.prev.next = new_node;
}
}
}
public static void remove(int deleted){
if(head == null && tail == null){
}else if(head==tail && head.data == deleted){
head = null;
tail = null;
}else if(head.data == deleted){
head = head.next;
head.prev.next = null;
head.prev = null;
}else if(tail.data == deleted){
tail = tail.prev;
tail.next.prev = null;
tail.next = null;
}else{
Node position = head;
while(position != null && position.data != deleted){
position = position.next;
}
if(position != null){
Node previous = position.prev;
Node next_ = position.next;
position.prev = null;
position.next = null;
previous.next = next_;
previous.prev = previous;
}
}
}
public static void main(String[] args) {
insert(12);
insert(11);
traverse();
insert(3);
traverse();
}
}