Advertisement
Faldi767

Double Linked List Faldi

Oct 17th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.20 KB | None | 0 0
  1. Class Node :
  2.  
  3. int data;
  4. Node next;
  5. Node prev;
  6.  
  7. public Node(int data) {
  8.     this.data = data;
  9. }
  10.  
  11. public void tampil() {
  12.     System.out.print("{"+data+"}");
  13. }
  14.  
  15. Class DoubleLinkedList :
  16.  
  17. Node awal;
  18. Node akhir;
  19.  
  20. public DoubleLinkedList() {
  21.     awal = null;
  22.     akhir = null;
  23. }
  24.  
  25. public boolean isEmpty() {
  26.     return (awal==null);
  27. }
  28.  
  29. public void insertAwal(int data) {
  30.     Node node = new Node(data);
  31.     if(isEmpty()) {
  32.         akhir = node;
  33.     } else {
  34.         awal.prev = node;
  35.     }
  36.    
  37.     node.next = awal;
  38.     awal = node;
  39. }
  40.  
  41. public void insertAkhir(int data) {
  42.     Node node = new Node(data);
  43.     if(isEmpty()) {
  44.         awal = node;
  45.     } else {
  46.         akhir.next = node;
  47.         node.prev = akhir;
  48.     }
  49.     akhir = node;
  50. }
  51.  
  52. public Node deleteAwal() {
  53.     Node temp = awal;
  54.     if(awal.next == null) {
  55.         akhir = null;
  56.     } else {
  57.         awal.next.prev = null;
  58.     }
  59.     awal = awal.next;
  60.     return temp;
  61. }
  62.  
  63. public Node deleteAkhir() {
  64.     Node temp = akhir;
  65.     if(awal.next == null) {
  66.         awal = null;
  67.     } else {
  68.         akhir.prev.next = null;
  69.     }
  70.     akhir = akhir.prev;
  71.     return temp;
  72. }
  73.  
  74. public boolean insertAfter(int key, int data) {
  75.     Node current = awal;
  76.     while(current.data != key) {
  77.         current = current.next;
  78.         if(current == null)
  79.         return false;
  80.     }
  81.     Node node = new Node(data);
  82.    
  83.     if(current == akhir) {
  84.         node.next = null;
  85.         akhir = node;
  86.     } else {
  87.         node.next = current.next;
  88.         current.next.prev = node;
  89.     }
  90.     node.prev = current;
  91.     current.next = node;
  92.     return true;
  93. }
  94.  
  95. public Node deleteKey(int key) {
  96.     Node current = awal;
  97.     while(current.data != key) {
  98.         current = current.next;
  99.     }
  100.     if(current == null) {
  101.         return null;
  102.     }
  103.     if(current == awal)
  104.         awal = current.next;
  105.     else
  106.         current.prev.next = current.next;
  107.     if(current == akhir)
  108.         akhir = current.prev
  109.     else
  110.         current.next.prev = current.prev;
  111.         return current;
  112. }
  113.  
  114. public void displayForward() {
  115.     System.out.print("List (awal-->akhir): ");
  116.     Node current = awal;
  117.    
  118.     while(current != null) {
  119.         current.tampil();
  120.         current = current.next;
  121.     }
  122.     System.out.println("");
  123. }
  124.  
  125. public void displayForward() {
  126.     System.out.print("List (akhir-->awal): ");
  127.     Node current = akhir;
  128.    
  129.     while(current != null) {
  130.         current.tampil();
  131.         current = current.prev;
  132.     }
  133.     System.out.println("");
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement