Diktat_Prosedural_07_ADTQueue

Algoritma ini tidak mencerminkan pergeseran orang

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: TIDAK mencerminkan pergeseran orang yang sedang mengantri di dunia nyata, tapi efisien. Namun suatu saat terjadi keadaan Queue penuh tetapi “semu” sebagai berikut : HEAD IdxMax x 1 2 x x x x x x x 3 4 5 6 7 8 9 TAIL 10 Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 24 Okt 2011 3 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB Jika keadaan ini terjadi, haruslah dilakukan aksi menggeser elemen untuk menciptakan ruangan kosong. Pergeseran hanya dilakukan jika dan hanya jika TAIL sudah mencapai IdxMax. Alternatif III : Tabel dengan representasi HEAD dan TAIL yang “berputar” mengelilingi indeks tabel dari awal sampai akhir, kemudian kembali ke awal. Jika Queue kosong, maka HEAD=0 dan TAIL=0 Representasi ini memungkinkan tidak perlu lagi ada pergeseran yang harus dilakukan seperti pada alternatif II pada saat penambahan elemen. Ilustrasi Queue tidak kosong, dengan 5 elemen, dengan HEAD “sedang” berada di posisi awal: HEAD TAIL IdxMax x x x x x 1 2 3 4 5 6 7 8 9 10 Ilustrasi Queue tidak kosong, dengan 5 elemen, dengan HEAD tidak berada di posisi awal, tetapi masih “lebih kecil” atau “sebelum” TAIL. Hal ini terjadi akibat algoritma penghapusan/penambahan yang dilakukan (lihat keterangan). HEAD TAIL x 1 2 x x x x 3 4 5 6 IdxMax 7 8 9 10 Ilustrasi Queue tidak kosong, dengan 5 elemen, HEAD tidak berada di posisi awal, tetapi “lebih besar” atau “sesudah” TAIL. Hal ini terjadi akibat algoritma penghapusan/penambahan yang dilakukan (lihat keterangan). TAIL HEAD x x x 1 2 3 IdxMax x 4 5 6 7 8 x 9 10 Algoritma untuk penambahan elemen: jika masih ada tempat adalah dengan “memajukan” TAIL. Tapi jika TAIL sudah mencapai IdxMax, maka suksesor dari IdxMax adalah 1 sehingga TAIL yang baru adalah 1. Jika TAIL belum mencapai IdxMax, maka algoritma penambahan elemen sama dengan alternatif II. Kasus khusus untuk Queue kosong karena HEAD dan TAIL harus diset nilainya menjadi 1. Algoritma untuk penghapusan elemen jika Queue tidak kosong: ambil nilai elemen HEAD, kemudian HEAD “maju”. Penentuan suatu suksesor dari indeks yang diubah/”maju” dibuat seperti pada algoritma penambahan elemen: jika HEAD mencapai IdxMax, maka suksesor dari HEAD adalah 1. Kasus khusus untuk Queue d...
View Full Document

This document was uploaded on 03/15/2014 for the course IF 2030 at Institut Teknologi Bandung.

Ask a homework question - tutors are online