My first Magazine pemrograman-kompetitif-dasar | Page 98
8 Struktur Data Dasar
Algoritma 42 Implementasi queue menggunakan array .
1:
queue ← new integer[maxSize]
procedure INITIALIZE Q UEUE ()
head ← 0
4:
tail ← −1
5: end procedure
. Buat array global queue berukuran maxSize
2:
3:
. head dan tail juga merupakan variabel global
procedure PUSH (item)
tail ← tail + 1
8:
queue[tail] ← item
9: end procedure
6:
7:
procedure POP ()
head ← head + 1
12: end procedure
10:
11:
function FRONT ()
14:
return queue[head]
15: end function
13:
16:
17:
18:
19:
20:
21:
22:
function IS E MPTY ()
if head > tail then
return true
else
return f alse
end if
end function
Kelemahan dari implementasi ini adalah beberapa elemen di bagian awal array tidak diguna-
kan kembali. Misalnya telah dilakukan 15 kali push dan 11 kali pop, maka sebanyak 11 elemen
pertama pada array tidak akan digunakan kembali. Ini adalah pemborosan, karena aslinya hanya
terdapat 4 elemen di dalam queue . Meskipun demikian, dalam dunia kompetisi hal ini masih dapat
diterima. Pastikan nilai maxSize sama dengan maksimal operasi push yang mungkin dilakukan.
88