Antrian (queue) adalah struktur data mirip dengan tumpukan, yaitu
terdiri dari item dalam urutan tertentu. Antrian memiliki dua ujung,
yang disebut ujung depan dan ujung belakang. Item selalu dimasukkan dari
belakang antrian, dan selalu dikeluarkan dari depan antrian. Operasi
memasukkan dan mengeluarkan item dari dalam antrian disebut "masuk" dan
"keluar" (dalam bahasa Inggris disebut enqueue dan dequeue).
Suatu
item yang ditambahkan di belakang antrian tidak bisa dihapus sebelum
item di depannya dihapus. Mirip seperti antrian pada kasir atau pada
customer service di bank misalnya. Customer akan dilayani dalam urutan
ketika mereka datang.
Contoh Program Antrian :
Pertama membuat class Node
pulic 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;}
}
|
Lalu lanjutkan membuat class yang kedua
public class List {
private Node
nodeAwal;
private Node
nodeAkhir;
private String
nama;
public List(){ this(
"list" ); }
public List( String
namaList ){
nama = namaList;
nodeAwal = nodeAkhir = null;
}
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" );
}
}
|
Terakhir class yang ketiga
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();
}
}
}
|
Hasil outputnya setelah di compile :
Sumber :http://java.lyracc.com/belajar/java-untuk-pemula/antrian
http://aaman-ahmad.blogspot.com/2013/05/antrian-queue-dalam-java.html
0 comments:
Post a Comment