Queue program java

Queue (Antrian)


package antrian;
class Node {   
   Object data;
   Node next;
   
 
   Node( Object object ){this ( object, null );} 
 
   Node( Object object, Node node ){
      data = object;
      next = node;
  }
 
   Object getObject(){return data;} 
 
   Node getNext() {return next;} 
}

class List {
private Node nodeAwal;
private Node nodeAkhir; 
private String nama; 
        private int counter;
  
  public List(){ this( "list" ); }
 
   public List( String namaList ){
  nama = namaList;
  nodeAwal = nodeAkhir = null;
           counter= -1;
      
   public void sisipDiAwal( Object dt ){
      if (kosong())
      nodeAwal = nodeAkhir = new Node( dt );
      else 
      nodeAwal = new Node( dt, nodeAwal );
      
   public void sisipDiAkhir( Object dt ){
      if (kosong()) nodeAwal = nodeAkhir = new Node( dt );
      else nodeAkhir = nodeAkhir.next = new Node( dt );
   } 
      
   public Object hapusDrDepan(){
    Object itemDihapus = null;
      if (!kosong()) {
       itemDihapus = nodeAwal.data;     
      if ( nodeAwal == nodeAkhir )
             nodeAwal = nodeAkhir = null;
      else nodeAwal = nodeAwal.next;
      }

      return itemDihapus; 
   }   

public boolean kosong(){return nodeAwal == null;} 
public void cetak(){
 if ( kosong() ){
    System.out.printf( "Kosong %s\n", nama );
    return;
 } 
 System.out.printf( "Isi %s adalah : ", nama );
 Node kini = nodeAwal;
 while ( kini != null ){
    System.out.printf( "%s ", kini.data );
    kini = kini.next;
 } 
 System.out.println( "\n" );

public class Queue {
   private List listAntrian;
    public Queue() {
       listAntrian = new List( "queue" );
    } 
     
    public void enqueue( Object object ){
       listAntrian.sisipDiAkhir( object );
    }
     
    public Object dequeue(){
       return listAntrian.hapusDrDepan();
    }
     
    public boolean kosong(){
       return listAntrian.kosong();
    } 
    
    public void cetak(){listAntrian.cetak();}
    
    public static void main( String args[]){
 Queue q = new Queue();
 q.enqueue( 10 ); 
 q.cetak();       
 q.enqueue( 40 );  
 q.cetak();       
 q.enqueue( 25 );  
 q.cetak();       
 q.enqueue( 30 );  
 q.cetak();
 Object dtHapus = null;
 while(!q.kosong()){
  dtHapus = q.dequeue(); 
  System.out.printf("%s dihapus \n",dtHapus );
  q.cetak();
 }
    }
}

Tidak ada komentar:

Posting Komentar