Jumat, 22 April 2011

QUEUE

Queue adalah salah satu list linier dari struktur data. Queue beroperasi dengan cara First In First Out (FIFO) elemen pertama masuk merupakan elemen yang pertama keluar. Untuk penyisipan (INSERT) hanya dapat dilakukan pada satu sisi yaitu sisi belakang (REAR), sedangkan untuk penghapusan (REMOVE) pada sisi depan (FRONT) dari list.
Sebagai gambaran, cara kerja queue dapat disamakan pada sebuah antrean di suatu loket dimana berlaku prinsip ‘ siapa yang duluan antre dia yang akan pertama kali dilayani ‘ , sehingga dapat dikatakan prinsip kerja queue sama dengan prinsip sebuah antrean.

Representasi dari Queue


hapus elemen 1 2 …….. ke – n sisip elemen
front rear


Di bawah ini diperlihatkan suatu queue yang akan menempati N elemen array memori, serta cara pengurangan (delete) dan penambahan (added) elemen pada queue tersebut.

Front : 1
Rear : 4
1 2 3 4 5 6 7 ..... N




REMOVE(Q)
Front : 2
Rear : 4
1 2 3 4 5 6 7 ..... N

INSERT(INSERT(E),F)
Front : 2
Rear : 6
1 2 3 4 5 6 7 ..... N

REMOVE(Q)
Front : 3
Rear : 6
1 2 3 4 5 6 7 ..... N


Dapat dilihat bahwa setiap terjadi penghapusan elemen pada queue nilai (index) dari Front bertambah satu (1) ; dapat ditulis FRONT := FRONT+1
Begitu pula bila terjadi penambahan elemen pada queue nilai (index) Rear bertambah satu (1) ; dapat ditulis REAR := REAR + 1

Akan terjadi ketidakefisienan bila penambahan elemen sudah pada posisi index N (Rear = N) maka tidak dapat lagi dilakukan penambahan elemen, sedangkan dilokasi memori yang lain (nilai di bawah N) masih terdapat memori array yang kosong.

Untuk mengatasi hal tersebut maka kita bayangkan bahwa memori dari queue tersebut berbentuk melingkar dimana kedua ujungnya saling bertemu atau disebut juga dengan Circular Queue

Tidak ada komentar:

Posting Komentar