saban123

PROGRAM DOUBLE LINKED LIST

Dec 10th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.50 KB | None | 0 0
  1. class node{
  2.         int data;
  3.         node prev = null;
  4.         node next = null;
  5.         node(int data){
  6.             this.data = data;
  7.         }}
  8.  
  9. class sayembara{
  10.     node head=null;
  11.     node tail=null;
  12.    
  13.     void addfront(int b){
  14.         node baru = new node(b);
  15.         if(head==null){
  16.             head=baru;
  17.             tail=baru;
  18.         }else{
  19.             baru.next=head;
  20.             head.prev=head;
  21.             head=baru;
  22.         }
  23.     }
  24.     void addback(int b){
  25.         node baru = new node(b);
  26.         if(head==null){
  27.             head=baru;
  28.             tail=baru;
  29.         }else{
  30.             baru.prev=tail;
  31.             tail.next=baru;
  32.             tail=baru;
  33.         }
  34.     }
  35.     void dellfront(){
  36.         if(head==null){
  37.             System.out.println("List Kosong");
  38.         }else{
  39.             head=head.next;
  40.             head.prev=null;
  41.         }
  42.     }
  43.    
  44.     void dellback(){
  45.         if(head==null){
  46.             System.out.println("List Kosong");
  47.         }else{
  48.             tail=tail.prev;;
  49.             tail.next=null;
  50.         }
  51.     }
  52.    
  53.     void tampil(){
  54.         node tmp=head;
  55.         if(head==null){
  56.             System.out.println("List Kosong");
  57.         }else{
  58.             while(tmp !=null){
  59.                 System.out.print(tmp.data +" ");
  60.                 tmp=tmp.next;
  61.             }
  62.         }System.out.println();
  63.     }
  64.    
  65.    
  66.     void addafter(int barunya,int dituju){
  67.         node tmp=head;
  68.         node baru = new node(barunya);
  69.         while(tmp.data != dituju){
  70.             tmp=tmp.next;
  71.         }
  72.         node bantu = tmp.next;
  73.         tmp.next=baru;
  74.         baru.next=bantu;
  75.         baru.prev=tmp;
  76.         bantu.prev=baru;   
  77.     }
  78.    
  79.     void addbefore(int barunya,int dituju){
  80.         node tmp=head;
  81.         node baru = new node(barunya);
  82.         while(tmp.data != dituju){
  83.             tmp=tmp.next;
  84.         }
  85.         node bantu = tmp.prev;
  86.         bantu.next=baru;
  87.         baru.prev=bantu;
  88.         tmp.prev=baru;
  89.         baru.next=tmp; 
  90.     }
  91.    
  92.     void deleteafter(int dituju){
  93.         node tmp=head;
  94.         while(tmp.data != dituju){
  95.             tmp=tmp.next;
  96.         }
  97.         node bantu = tmp.next.next;
  98.         tmp.next=bantu;
  99.         bantu.prev=tmp;
  100.     }
  101.    
  102.         void deletebefore(int dituju){
  103.         node tmp=head;
  104.         while(tmp.data != dituju){
  105.             tmp=tmp.next;
  106.         }
  107.         node bantu = tmp.prev.prev;
  108.         tmp.prev=bantu;
  109.         bantu.next=tmp;
  110.     }
  111.    
  112.  
  113.         void addbetwen(int barunya,int dituju1, int dituju2){
  114.         node tmp=head;
  115.         node baru = new node(barunya);
  116.         while(tmp.data != dituju1&&tmp.next.data!=dituju2){
  117.             tmp=tmp.next;
  118.         }
  119.         node bantu = tmp.next;
  120.         tmp.next=baru;
  121.         baru.next=bantu;
  122.         baru.prev=tmp;
  123.         bantu.prev=baru;   
  124.     }
  125.    
  126.             void deletebetwen(int dituju1, int dituju2){
  127.         node tmp=head;
  128.         while(tmp.data != dituju1&&tmp.next.next.data!=dituju2){
  129.             tmp=tmp.next;
  130.         }
  131.         node bantu = tmp.next.next;
  132.         tmp.next=bantu;
  133.         bantu.prev=tmp;
  134.     }
  135.    
  136.     void deleteall(){
  137.         head=null;
  138.         tail=null;
  139.         System.out.println("data kosong sudah dihapus semua");
  140.     }
  141.    
  142.     void search(int dituju){
  143.         node tmp=head;
  144.         int index=0;
  145.         while(tmp.data != dituju){
  146.             tmp=tmp.next;
  147.             index=index+1;
  148.         }
  149.    
  150.     if(tmp.next!=null&& tmp.prev!=null){
  151.    
  152.     System.out.println("data yang anda cari berada pada index ke : ["+index+"] sebelum data angka "+tmp.prev.data+" dan sesudah angka "+tmp.next.data);    
  153.     }
  154.     if(tmp.next==null){
  155.     System.out.println("data yang anda cari berada pada index ke :["+index+"] sebelum data angka "+tmp.prev.data+" dan merupakan data terakhir");      
  156.     }
  157.     if(tmp.prev==null){
  158.     System.out.println("data yang anda cari berada pada index ke :["+index+"] sesudah data angka "+tmp.next.data+" dan merupakan data pertama atau awal");
  159. }  
  160.     }
  161. public static void main (String [] args){
  162.         sayembara x= new sayembara();
  163.         System.out.println("memasukkan data dan menampilkan data awal dengan addback dan addfront:");
  164.         x.addback(2);
  165.         x.addback(6);
  166.         x.addback(13);
  167.         x.addback(19);
  168.         x.addback(46);
  169.         x.addback(35);
  170.         x.addfront(83);
  171.         x.tampil();
  172.         System.out.println("menghapus 1 data awal dengan fungsi deletefront:");
  173.         x.dellfront();
  174.         x.tampil();
  175.         System.out.println("menghapus 1 data akhir dengan fungsi deleteback:");
  176.         x.dellback();
  177.         x.tampil();
  178.         System.out.println("menambahkan data angka 3 pada sesudah data angka 19:");
  179.         x.addafter(3,19);
  180.         x.tampil();
  181.         System.out.println("menambahkan data angka 13 pada sebelum data angka 3:");
  182.         x.addbefore(13,3);
  183.         x.tampil();
  184.         System.out.println("menghapus data pada sesudah data angka 19:");
  185.         x.deleteafter(19);
  186.         x.tampil();
  187.         System.out.println("menghapus data pada sebelum data angka 19:");
  188.         x.deletebefore(19);
  189.         x.tampil();
  190.         System.out.println("menambah data angka 79 diantara data angka 6 dan 19:");
  191.         x.addbetwen(70,6,19);
  192.         x.tampil();
  193.         System.out.println("menghapus data diantara data angka 70 dan 3:");
  194.         x.deletebetwen(70,3);
  195.         x.tampil();
  196.         System.out.println("mencari data index angka 3:");
  197.         x.search(46);
  198.     System.out.println("menghapus semua :");
  199.         x.deleteall();
  200. }
  201. }
Advertisement
Add Comment
Please, Sign In to add comment