QUEUE Dewi Sartika, M.Kom
DELETE void delete() { if(counter > 0) x = Q[F]; F = (F+1) % n; counter--; } else {cout<<“antrian kosong”;}
DOUBLE ENDED QUEUE Antrian yang proses insert dan deletenya dapat dilakukan pada ujung maupun akhir dari struktur Q[n=5 ] 0 1 2 3 4 Insert Kanan Delete Kanan Insert Kiri Delete Kiri x L R
KETERANGAN ILUSTRASI Pengantri/data yang masuk dari kiri bisa keluar dari kanan. Pengantri/data yang masuk dari kanan bisa keluar dari kiri
KONDISI DOUBLE ENDED QUEUE 1. Kosong (L = R+1 dimana saja) 0 1 2 3 4 Q[n=5 ] R L 2. Penuh Kiri (L = 0) 0 1 2 3 4 Q[n=5 ] x R L
KONDISI DOUBLE ENDED QUEUE 3. Penuh Kanan (R = n-1) 0 1 2 3 4 Q[n=5 ] x L R 4. Bisa diisi dari Kiri (L > 0) 0 1 2 3 4 Q[n=5 ] x L R
KONDISI DOUBLE ENDED 5. Bisa diisi dar Kanan (R < n-1) 0 1 2 3 4 0 1 2 3 4 Q[n=5 ] x L R 6. Ada isinya (L < R+1) 0 1 2 3 4 Q[n=5 ] x L R
INISIALISASI Dalam hal ini yang bisa dilakukan hanyalah insert kanan void awal() { L = 0; R = -1; }
INSERT KIRI void insert_kiri() { if( L > 0) L = L -1; Q[L] = x; }
DELETE KIRI void delete_kiri() { if( L < R+1) x = Q[L]; L = L+1; }
INSERT KANAN void insert_kanan() { if(R<n-1) R = R+1 Q[R] = x; }
DELETE KANAN void delete_kanan() { if ( L < R+1) x = Q[R]; R = R-1; }