Kamis, 29 November 2012

Queue dengan Bahasa C

Queue dengan Bahasa C ( Compiler Microsoft Visual C++ 6 )

Salam Blogger, di postingan kali ini saya mau berbagi ilmu tentang Queue, berbeda dengan Stack yang memakai metode LIFO ( Last In First Out ) dengan indentifikasi elemen top, Queue menggunakan metode FIFO ( First In First Out ) dengan identifakasi data head atau kepal dan tail atau ekor.

Dalam kehidupan nyata Algoritma Queue bisa kita temui dalam sebuah antrian, entah itu antrian tiket, antrian belanja, dls. Queue mempunyai 2 perintah utama yaitu Enqueue ( untuk memasukkan data / menambah tail ) dan Dequeue ( Untuk mengambil data / mengurangi tail ),

Untuk lebih jelasnya bisa dilihat pada script berikut :


void enqueue(int data)
{
if(IsEmpty()==1)
{
antrian.head=antrian.tail=0;
antrian.data[antrian.tail]=data;
printf("%d masuk !", antrian.data[antrian.tail]);
}
else if(IsFull()==0)
{
antrian.tail++;
antrian.data[antrian.tail]=data;
printf("%d masuk !", antrian.data[antrian.tail]);
}
        else 
printf("\nData Sudah Penuh");

}

Penjelasan :
Prosedur enquque / void enqueue berfungsi untuk memasukkan data kedalam antrian, sebelum masuk antrian akan di cek terlebih dahulu dengan perintah IsEmpty==1 menandakan antrian masih kosong dan data akan dimasukkan, tapi jika antrian tidak kosong, maka akan dilakukan IsFull==0 menandakan antrian belum penuh, dan data akan dimasukkan.
tapi jika data sudah penuh maka akan keluar kata : Data Sudah Penuh

int dequeue()
{
int i;
int e=antrian.data[antrian.head];
for(i=antrian.head; i<=antrian.tail; i++)
{
antrian.data[i]=antrian.data[i+1];
}
antrian.tail--;
return e;
}

Penjelasan :
Prosedur dequeue / void dequeue berfungsi untuk mengurangi data / antrian tail,
int e menampung data head yang akan diambil, dan menambah satu indeks terakhir (antrian.data[i]=antrian.data[i+1];) dengan menggunakan for i=antrian.head menunjuk pada data pertama dan i<=antrian.tail setelah itu akan dilakukan pengambilan data bergeser kebagian depan dengan perintah antrian.tail--.

Yang pengen Download Code nya klik di sini

Sekian posting kali ini, jika ada yang ingin bertanya atau ingin memberikan pembetulan silahkan mengisi form komentar di bawah. Terimakasih telah mampir.

1 komentar: