Bài 9. C u trúc d
li u hàng đ i
Danh sách ki u Hàng đ i (Queue)
Queue là cách t ch c l u tr các đ i t ng d i d ng ư ượ ướ
m t danh sách tuy n tính mà vi c b sung đ i t ng ế ượ
đ c th c hi n đ u danh sách và vi c l y đ i t ng ra ượ ượ
đ c th c hi n cu i c a danh sách.ượ
Queue còn đ c g i là danh sách ki u ượ FIFO (First In
First Out - vào tr c ra tr c)ướ ướ
C u trúc d li u tr u t ng Queue ượ
(The queue ADT)
Queue ADT l u tr các đ i ư
t ng b t kỳượ
Tmo và xóa đi (l y ra)
theo ki u FIFO
Tmo th c hi n cu i
c a queue và l y ra th c
hi n đ u queue
Các pp toán chính th c
hi n trên queue:
- enqueue(Object o): b
sung m t ph n t o vào
cu i c a queue.
- dequeue(Object &o): Xóa
đi ph n t đ u c a queue
Các pp toán b tr
- front(): tr l i ph n t đ u
c a queue nh ng không ư
xóa nó đi
size(): tr l i s ph n t
hi n đang đ c l u tr ượ ư
trong queue
isEmpty(): tr l i giá tr ki u
boolen đ xác đ nh có ph n
t đ c l u tr trong queue ượ ư
không?
Ngo i l : th c hi n dequeue
ho c enqueue trong khi
queue r ng, khi đó ta c n
ph i chuy n nó đ n ngo i ế
l
M t s ng d ng c a queue
Các ng d ng tr c ti p ế
- Danh sách hàng đ i
- Truy nh p các ngu n dùng chung(ví d
máy in trong m ng c c b )
- Đa l p trình
Các ng d ng không tr c ti p ế
- C u trúc d li u h tr cho các thu t toán
- Làm thành ph n c a các c u trúc d li u
khác
Cài đ t queue b ng m ng
S d ng m t m ng ki u vòng có kích th c N ướ
S d ng 2 bi n l u tr ch s c a ph n t tr c và ế ư ướ
ph n t sau:
f l u ch s ph n t tr cư ướ
r l u tr ch s ph n t chu n b đ c đ a vàoư ượ ư
V trí r c a m ng là r ng
C u hình bình th ng ườ
C u hình vòng l i