ppt

advertisement
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)
EXIT
Problem
program simulasi tempat parkir.
IN
Program simulasi ini didasarkan pada persoalan berikut. Ada suatu tempat parkir yang hanya bisa
memuat mobil dalam satu baris, jumlah mobil yang bisa masuk untuk nomor ini bisa dibatasi. Mobil
masuk lewat pintu Utara (belakang) dan keluar lewat pintu Selatan (depan). Jika mobil yang berada paling
depan (di sisi paling Selatan) akan keluar maka mobil tersebut segera bisa keluar. Tetapi jika mobil yang
akan keluar adalah mobil yang di tengah, maka mobil yang terletak di depannya (di sebelah Selatan)
harus dikeluarkan sementara. Setelah mobil yang dimaksud keluar, maka mobil yang dikeluarkan
sementara tadi dimasukkan kembali ke tempat parkir dengan susunan seperti semula. Sehingga mobil
yang semula berada paling depan tetap berada pada posisinya semula. Mobil-mobil yang terletak di
sebelah Utaranya mobil yang keluar tadi digeser maju ke depan, sehingga bagian kosong selalu berada
pada pintu Utara (belakang). Dengan memperhatikan persoalan di atas, sebenarnya simulasi ini selain
berisi antrian juga berisi tumpukan, yakni pada saat sebuah mobil yang berada di 37 tengah akan
dikeluarkan, maka semua mobil yang ada di sebelah Selatannya ditumpuk (di-push) di tempat
penampungan sementara. Baru setelah mobil yang dimaksud keluar, maka semua mobil yang berada di
tempat penampungan sementara dipop kembali. Dengan cara ini semua mobil akan mempunyai posisi
yang sama seperti sebelum suatu mobil dikeluarkan dari tempat parkir.
Download