Hàng đ i
C u trúc d li u ho t đ ng theo c ch ơ ế first-in
first-out (FIFO)
Hai thao tác c b n:ơ
Chèn vào hàng đ i: enqueue
L y ra kh i hàng đ i: dequeue
Các đ i t ng trong hàng đ i đ c s p th t ượ ượ
theo th i gian chúng đ c cn o hàng ượ
Đ i t ng đ c l y ra kh i hàng đ i đ i t ng ượ ượ ượ
đ c chèn o tr c nh tượ ướ
Hàng đ i
A B C D ... M N
head of queue tail of queue
enqueuedequeue
Hàng đ i, s d ng m ng
Khai báo c u trúc hàng đ i
Typerdef struct Queue
{
int *arrQueue;
int max;
int numItems;
int front;
int rear;
}
Hàng đ i, s d ng m ng
Thao c kh i t o hàng đ i r ng
int InitQueue(Queue &q, int maxItems)
{
q.arrQueue = new int(maxItems);
if(q.arrQueue == Null)
return 0; // không c p phát đ c b nh ượ
q.max = maxItems;
q.numItems = 0; // ch a có ph n t nào trong queueư
q.front = q.rear = -1;
return 1; // kh i t o thành công
}
Hàng đ i, s d ng m ng
Thao c ki m tra ng đ i r ng
int IsEmpty(const Queue q)
{
if(q.numItems == 0)
return 1; // Queue r ng
return 0; // Queue không r ng
}