Jika dilakukan operasi queue secara berurutan sebagai berikut: Enqueue(Q, 19) Enqueue(Q, 14) Dequeue(Q, 54) Enqueue(Q) Enqueue(Q, 76) Dequeue(Q) Enqueue(Q, 100) Apa output yang dihasilkan jika kita print info queue mulai dari Head? * a.)54, 76, 100 b.)19, 14, 54, 76, 100 c.)100, 14, 19 d.)100, 76, 54
Output yang dihasilkan jika kita print info queue mulai dari Head adalah: 14, 76, 100 (tidak ada pada opsi jawaban).
Pembahasan
Operasi dasar pada struktur data queue adalah:
Enqueue(<Queue>, <elemen>) : memasukkan sebuah elemen pada queue. Elemen tersebut menjadi elemen terakhir pada urutan elemen queue.
Dequeue(<Queue>) : membuang/mengeluarkan elemen HEAD (elemen terdepan) dari queue. Tidak perlu parameter <elemen>.
Pada implementasi queue dengan array, Dequeue tidak benar-benar membuang elemen dari array queue. Yang dilakukan oleh Dequeue adalah inkrementasi HEAD, sehingga HEAD yang baru bernilai HEAD + 1.
Asumsi untuk Penelusuran (Asumsi ditetapkan karena pada pertanyaan tidak diberikan algoritma atau kode program implementasi Queue.)
Kondisi awal queue kosong.
HEAD = –1
Queue diimplementasikan dalam bentuk array, dengan nama variabel Q (dengan melibatkan variabel global HEAD).
Indeks elemen pertama array adalah 1.
Urut-urutan operasi queue dan hasilnya
Enqueue(Q, 19)
⇒ Array Q = [19] ⇒ HEAD = 1 ⇒ Q[HEAD] = 19
Enqueue(Q, 14)
⇒ Array Q = [19, 14] ⇒ HEAD = 1 ⇒ Q[HEAD] = 19
Dequeue(Q, 54) ⇒ terjadi ERROR, karena tidak sesuai definisi fungsi Dequeue.
Enqueue(Q) ⇒ terjadi ERROR, karena tidak sesuai definisi fungsi Enqueue.
Output yang dihasilkan jika kita print info queue mulai dari Head adalah:
14, 76, 100 (tidak ada pada opsi jawaban).
Pembahasan
Operasi dasar pada struktur data queue adalah:
Pada implementasi queue dengan array, Dequeue tidak benar-benar membuang elemen dari array queue. Yang dilakukan oleh Dequeue adalah inkrementasi HEAD, sehingga HEAD yang baru bernilai HEAD + 1.
Asumsi untuk Penelusuran
(Asumsi ditetapkan karena pada pertanyaan tidak diberikan algoritma atau kode program implementasi Queue.)
Urut-urutan operasi queue dan hasilnya
⇒ Array Q = [19]
⇒ HEAD = 1
⇒ Q[HEAD] = 19
⇒ Array Q = [19, 14]
⇒ HEAD = 1
⇒ Q[HEAD] = 19
⇒ terjadi ERROR, karena tidak sesuai definisi fungsi Dequeue.
⇒ terjadi ERROR, karena tidak sesuai definisi fungsi Enqueue.
⇒ Array Q = [19, 14, 76]
⇒ HEAD = 1
⇒ Q[HEAD] = 19
⇒ Array Q = [19, 14, 76], queue sebenarnya = [14, 76]
⇒ Hasil Dequeue = 19
⇒ HEAD = 2
⇒ Q[HEAD] = 14
⇒ Q = [19, 14, 76, 100], queue sebenarnya = [14, 76, 100]
⇒ HEAD = 2
⇒ Q[HEAD] = 14
Yang terakhir adalah: PrintInfo(Q)
⇒ Output: 14, 76, 100.