Single LinkedList merupakan LinkedList yang berjalan pada satu arah saja. Double LinkedList merupakan LinkedList yang berjalan pada dua arah sehingga memungkinkan kita melakukan pembacaan data dari kiri-kanan dan kanan-kiri. Sedangkan Ordered LinkedList merupakan Double LinkedList yang memiliki fitur pengurutan secara otomatis sehingga begitu kita menginputkan data sudah langsung urut.
Mengapa kita menggunakan Ordered LinkedList ?
Karena metode ini lebih praktis dan mempercepat pemrosesan data, disebabkan data yang kita masukan sebelumnya telah diurutkan terlebih dahulu, sehingga kita hanya membaca data sesuai urutan.
Berikut Script Java dari Ordered Linked List :
package ordered.linkedlist;
class Node {
int data;
Node prev;
Node next;
}
public class OrderedLinkedList {
static Node head, tail;
static void insert(int new_data) {
Node new_node = new Node();
new_node.data = new_data;
if (head == null && tail == null) { // Jika LinkList Kosong
head = new_node;
tail = new_node;
} else if (new_node.data <= head.data) { //new_data < head
head.prev = new_node;
new_node.next = head;
head = new_node;
} else if (new_node.data >= tail.data) { //new_data > tail
new_node.prev = tail;
tail.next = new_node;
tail = new_node;
} else { //data di antara link list
Node position = head;
while (position.data < new_node.data) {
position = position.next;
}
position.prev.next = new_node;
new_node.prev = position.prev;
position.prev = new_node; //data sebelum position berganti jadi new_node
new_node.next = position;
}
}
static void delete(int data) {
if (head == null && tail == null) {
// ridak bisa dihapus, karena tidak ada data
} else if (head == tail && head.data == data) { //satu data saja
head = null;
tail = null;
} else if (head.data == data) { //data yg dihapus ==head
head.next.prev = null;
head = head.next;
} else if (tail.data == data) { //data yg dihapus == tail
tail.prev.next = null;
tail = tail.prev;
} else {
Node position = head;
while (position!= null && position.data != data) {
position = position.next;
}
if (position == null) {
System.out.println("Data Tidak Ada");
} else if (position != null) {
Node previous = position.prev;
Node next = position.next;
previous.next = next;
next.prev = previous;
}
}
}
static void traverse() { //sama dengan view() pada double_linklist
Node x = head;
while (x != null) {
System.out.print(x.data + " - ");
x = x.next;
}
System.out.println();
}
public static void main(String[] args) {
insert(10);
insert(5);
insert(7);
insert(3);
insert(8);
insert(12);
insert(3);
//delete(13);
traverse();
}
}
1 comments:
Click here for commentsOrdered Linkedlist In Java ~ Jopa Find Here >>>>> Download Now
>>>>> Download Full
Ordered Linkedlist In Java ~ Jopa Find Here >>>>> Download LINK
>>>>> Download Now
Ordered Linkedlist In Java ~ Jopa Find Here >>>>> Download Full
>>>>> Download LINK
ConversionConversion EmoticonEmoticon