57
if ( jumlah elemen dalam queue == max_queue_size )
return TRUE
else return FALSE
Queue AddQ(queue,item) ::=
if(IsFullQ(queue)) queue_full
else insert item at rear of queue and return queue
Boolean IsEmptyQ(queue) ::=
if ( queue==CreateQ(max_queue_size))
return TRUE
else return FALSE
Element DeleteQ(queue) ::=
if (isEmptyQ(queue)) return
else remove and return the item at front of queue
Tipe data abstrak queue
Boolean IsFullQ(queue) ::= rear == MAX_QUEUE_SIZE-1
Fungsi addq dan deleteq secara struktur mirip dengan add dan delete pada
stack.
Stack
menggunakan variabel
top
baik
pada
add
maupun
pada
delete,
sedangkan
queue
menggeser
posisi
rear
dalam
addq
dan
front
dalam
deleteq.
Pemanggilan
fungsi
umum
yaitu
addq(&rear,item) ;
dan
item=deleteq(&front,rear);. Perhatikan
bahwa
pemanggilan
pada
addq
mengirimkan alamat
rear.
Hal
ini
dilakukan
sehingga
modifikasi pada
rear
bersifat permanen. Mirip dengan sebelumnya, pemanggilan deleteq
mengirimkan
alamat front sehingga modifikasi pada front bersifat permanen. Alamat rear tidak
|