Tuesday, March 15, 2016

Queue

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
← q.count;
return n;

Perbedaan Stack & Queue

No comments:

Post a Comment