Queue (antrian) merupakan struktur data yang meniru antrian orang.
Konsep queue : FIFO (First In First Out)
artinya yang pertama masuk antrian itulah yang pertama dilayani.
Implementasi queue :
type queue : record
<
count, front, rear : integer;
isi : array [1 .. maks] of item;
>
Isi : array yang menyimpan isi antrian
Item : tipe data pada queue, misal int, char, dan sebagainya
Count : variabel untuk mencacah jumlah elemen dalam antrian
Front : variabel yang menunjuk pada awal (bagian paling depan) antrian
Rear : variabel yang menunjuk pada bagian akhir (bagian paling belakang) antrian
Proses utama queue :
# Initialize : proses memulai antrian
# Enqueue : proses menambahkan elemen
# Dequeue : proses mengambil elemen
# Size : proses menghitung jumlah elemen
1. Initialize
Prosedur initialize(in-out q : queue)
{memulai suatu antrian}
Deifinisi Variabel
{tidak ada}
Rincian Langkah
q.count ← 0;
q.front ← 1;
q.rear ← 0;
return;
2. Enqueue
Elemen ditambahkan dari belakang sehingga count bertambah 1, rear juga bertambah 1.
Prosedur enqueue(input x : item; in-out q : queue)
{menambah elemen ke dalam antrian}
Definisi Variabel
{tidak ada}
Rincian Langkah
if (q.count = maks)
then write("antrian penuh");
else
q.count ← q.count + 1;
q.rear ← (rear % maks) + 1;
q.isi[rear] ← x;
endif
3. Dequeue
Elemen yang diambil dari antrian selalu dari depan, sehingga count berkurang 1, dan front bertambah 1.
Prosedur dequeue(input x : item; in-out q : queue)
{mengambil 1 elemen dari antrian}
Definisi Variabel
{tidak ada}
Rincian Langkah
if (q.count = 0)
then write("antrian kosong");
else
q.count ← q.count - 1;
x ← q.isi[front];
q.front ← (front % maks) + 1;
endif
4. Size
Fungsi size(in-out q : queue) → integer
{menghitung jumlah elemen dalam antrian}
Definisi Variabel
int n;
Rincian Langkah
n ← q.count;
return n;
Perbedaan Stack & Queue
No comments:
Post a Comment