Queue (Antrian)
Queue (antrian) Merupakan kumpulan data dimana penambahan data (elemen) hanya melalui satu sisi yaitu depan (head) Penghapusan data (elemen) hanya melalui sisi belakang (tail) Sifat ini disebut FIFO (first in first out) Elemen yang pertama kali masuk ke dalam queue disebut elemen depan (front/head of queue), sedangkan elemen terakhir yang masuk disebut elemen belakang (rear/tail of queue)
Perbedaan Stack dan Queue Terdapat pada aturan penambahan dan penghapusan elemen Pada stack operasi penambahan dan penghapusan dilakukan pada satu tempat / satu ujung. Dengan kata lain elemen yang terakhir masuk akan dihapus terlebih dahulu Sifat pada stack disebut LIFO (Last in First Out)
Operasi standard pada queue Membuat queue atau inisialisasi (init) Mengecek apakah queue penuh / full Mengecek apakah queue kosong / empty Memasukkan elemen (insert queue) Menghapus elemen (delete queue)
Model Fisik (bagian depan selalu menempati posisi pertama dari array)
Deklarasi Umum Queue # define MAX 50 # define true 1 # define false 0 Struct queue { char info[MAX]; int awal; int akhir; }; Struct queue antri;
Operasi Queue Fungsi Init void init(void) { antri.awal=-1; antri.akhir=-1; }
Operasi Queue Fungsi Full
Operasi Queue Fungsi Empty
Fungsi insert jika queue masih kosong maka head dan tail menjadi 0, jika tidak kosong & antrian belum penuh maka tail akan diincrement
Operasi Queue Fungsi delete memindahkan semua elemen satu langkah ke posisi depannya sehingga elemen yang paling depan tertimpa
Operasi Queue Fungsi delete Ada dua cara: menuliskan fungsi seperti inisialisasi atau memanggil fungsi dequeue sampai queue kosong void clear(void) { while(empty()==0)dequeue(); }