Think Different ASD: Queue

Algoritma dan Struktur Data
Queue

Queue

Apakah queue itu?
• Queue merupakan linear list di mana data
dimasukkan melalui sebuah ujung yang
disebut end/rear dan dihapus dari ujung
lain yang disebut front
• first in – first out (FIFO)

Operasi queue
• Enqueue
• Dequeue
• Queue Front
• Queue Rear
• Queue Example

Enqueue
• Memasukkan data baru ke rear.


Dequeue
• Menghapus data yang ada di front.

Queue front

• Mengembalikan elemen yang ada di front tanpa
menghapusnya

Queue rear

• Mengembalikan elemen yang ada di rear tanpa
menghapusnya

(Continued)

Implementasi queue dengan linked list
• Struktur data queue
• Algorithms


Data structure

pointer

Queue algorithms






Create queue
Enqueue
Dequeue
Queuefront
Queuerear







Empty queue
Full queue
Queue count
Destroy queue

(Continued)

Create queue

enqueue

dequeue

ADT Queue
• Struktur Queue
• Algoritma ADT Queue

傳進來的是儲存資料變數的位

址,用區域指標變數來接。

dequeue (queue, (void*)&dataPtr)
傳進來的是儲存指到資料變數的指標
變數的位址,用區域指標變數 ( 一個指
到指標變數的指標變數 ) 來接。

queueFront (queue, (void*)&dataPtr)

queueRear (queue, (void*)&dataPtr)

Contoh penggunaan queue
•Mengkategorikan data

Mengkategorikan data
• Kadang kita butuh menyusun ulang data
tanpa mengubah urutan aslinya.
• Example :
– 3 22 12 6 10 34 65 29 9 30 81 4 5 19 20 57 44 99
– We want the list rearranged as shown below.

• Less than 10 :
36945
• Between 10 and 19 :
12 10 19
• Between 20 and 29 :
22 29 20
• 30 and greater :
34 65 30 81 57 44 99

Desain
• Queue category
• Mengisi kategori queue

(Continued)

(Continued)

(Continued)