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