4:16 AM
0
Struktur data tentang linked list

import java.awt.List;
package list;
/**
 *
 * @author kantor-linux
 */
class Kereta{
    
    int data;
    Kereta gerbong;
    public Kereta(){
        
    }
    public Kereta(int data){
        this.data=data;
    }
}
public class LatihanList {
    
    static Kereta kereta=null;
    public static void insertKeretaAwal(int data){
        Kereta keretaSementara = new Kereta(data);
        if(kereta == null) {
            kereta = keretaSementara;
        }
        else {
            keretaSementara.gerbong = kereta;
            kereta = keretaSementara;           
        }
    }
    
    public static void cetakKereta(){
        System.out.println("Kereta keretaku");
        Kereta k = LatihanList.kereta;
        while( k!= null) {
            System.out.print(k.data + "->");
            
            k = k.gerbong;
        }
        System.out.println("");
    }
    
    public static void insertKeretaAkhir(int data){
        
        Kereta keretaSementara=new Kereta(data);
        if(kereta==null){
            kereta=keretaSementara;                    
        }else{
            
            Kereta gerbongBaru=kereta;
            while(gerbongBaru.gerbong!=null){
                gerbongBaru=gerbongBaru.gerbong;
            }
            gerbongBaru.gerbong=keretaSementara;
        }
    }
     public static void deleteKeretaAwal(){
         if(kereta==null){
             System.out.println("Kereta masih kosong tidak bisa dihapus");
         }else{
             Kereta k=kereta.gerbong;
             kereta=k;
         }
     }
     public static void deleteKeretaAkhir(){
         
         if(kereta==null){
             System.out.println("Kereta masih kosong tidak bisa dihapus");
         }else{
            Kereta k=kereta;
            while(k.gerbong.gerbong!=null){         
                k=k.gerbong;
            }
            k.gerbong=null;
            
         }
     }
     
     public static Object[] cariPosisiKereta(int cari){
         System.out.println("---------- Cari Posisi Kereta ----------");
         Object object[]=new Object[2];         
         if(kereta==null){
             System.out.println("Tidak dapat dilakukan pencarian, kereta kosong");
         }else{
             int nomor=1;
             Kereta k=kereta;
             while(k.gerbong!=null){
                 if(k.data==cari){                    
                     object[0]=nomor;
                     object[1]=cari;                     
                 }
                 k=k.gerbong;
                 nomor++;
             }
         }         
         return object;
     }
     public static void cetakHasilPencarian(Object [] cari){
         System.out.println("Data yang dicari diposisi ke "+cari[0]+" bernilai: "+cari[1]);
     }
     public static void menggantiKereta(int yangdiganti, int pengganti){
         System.out.println("---------- Mengganti kereta ----------");
         if(kereta==null){
             System.out.println("Tidak dapat dilakukan penggatian, kereta kosong");
         }else{
             Kereta k=kereta;
             while(k.gerbong!=null){
                 if(k.data==yangdiganti){
                     k.data=pengganti;
                 }
                 k=k.gerbong;             
             }
         }      
     }
     public static void deleteKeretaYangdiCari(int yangdicari){
         System.out.println("---------- Menghapus kereta yand dicari ----------");
         if(kereta==null){
             System.out.println("Tidak dapat dilakukan penggatian, kereta kosong");
         }else{
             //Kereta sementara=new Kereta(yangdicari);
             Kereta k=kereta;
             while(k.gerbong.data != yangdicari && k.gerbong.gerbong != null) {
                k=k.gerbong;
            }
            if(k.gerbong.data != yangdicari) {
                System.out.println("Data yang dicari tidak ditemukan");
            }
            else{                
                k.gerbong=k.gerbong.gerbong;
            }
         }      
     }
    public static void main(String arg[]){
        LatihanList.insertKeretaAwal(30);
        LatihanList.insertKeretaAwal(610);
        LatihanList.insertKeretaAwal(640);
        LatihanList.insertKeretaAwal(602);
        LatihanList.insertKeretaAwal(601);
        LatihanList.insertKeretaAwal(60);
        LatihanList.insertKeretaAwal(50);
        LatihanList.insertKeretaAkhir(89);
        LatihanList.cetakKereta();
        LatihanList.deleteKeretaAwal();
        LatihanList.cetakKereta();
        //LatihanList.deleteKeretaAkhir();
        Object o[]=LatihanList.cariPosisiKereta(60);
        LatihanList.cetakHasilPencarian(o);
        LatihanList.menggantiKereta(601, 300);
        LatihanList.cetakKereta();
        LatihanList.deleteKeretaYangdiCari(602);
        LatihanList.cetakKereta();
    }
} 
Berikut hasilnya

0 comments: