CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - HÀNG ĐỢI - Pdf 12


HÀNG ĐỢI
QUEUE

KHÁI NIỆM

Hàng đợi là một danh sách tuyến tính,
trong đó:

Việc bổ sung một phần tử vào hàng đợi được
thực hiện ở một đầu gọi là cuối hàng

Việc loại bỏ một phần tử ra khỏi hàng đợi được
thực hiện ở đầu kia gọi là đầu hàng.

Danh sách kiểu hàng đợi còn gọi là danh
sách FIFO – First In First Out.

KHÁI NIỆM
A B C D E F
Đầu hàng Cuối hàng
Loại bỏ
Bổ sung
Hình vẽ biểu diễn hàng đợi

BIỂU DIỄN CẤU TRÚC DỮ LIỆU

Giả sử các phần tử của HĐ có kiểu dữ liệu là Item, độ dài của HĐ
là N

HĐ được lưu trong BNMT bởi mảng 1 chiều (lưu trữ kế tiếp).


CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI
void Initialize (Queue &Q)
{
Q.front = 0;
Q.rear = -1;
}

1. Khởi tạo hàng đợi rỗng
int Empty (Queue Q)
{
return (Q.rear == -1);
}

2. Kiểm tra hàng đợi rỗng

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI
1 2 3 4 5 6 7 8 9
Max=10
front = 0 rear = -1
E
Biểu diễn hàng đợi rỗng
0

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI

3. Kiểm tra hàng đợi đầy
int Full (Queue Q)
{
reurn (Q.rear == Max-1);

4. Bổ sung một phần tử vào cuối hàng đợi
G
0
X

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI
A B C D E F G
1 2 3 4 5 6 7 8 9
10 = Max
front = 2 rear = 8
E
Mảng lưu trữ hàng đợi

4. Bổ sung một phần tử vào cuối hàng đợi
0

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI
int AddQ(Queue &Q, Item X)
{
If (Full(Q))
return 0;
else
{
Q.rear++;
Q.E[Q.rear] = X;
return 1;
}
}
Hàm AddQ thực hiện bổ sung một phần tử vào cuối hàng, hàm trả về 1
nếu bổ sung thành công, ngược lại hàm trả về 0

X

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI
B
1 2 3 4 5 6 7 8 9
10 = Max
front = 3
rear = 3
E
Mảng lưu trữ hàng đợi

5. Lấy ra một phần tử ở đầu hàng đợi

Trường hợp hàng đợi có 1 phần tử
0
X

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI
1 2 3 4 5 6 7 8 9
10 = Max
front = 0 rear = -1
E
Hàng đợi rỗng

5. Lấy ra một phần tử ở đầu hàng đợi

Trường hợp hàng đợi có 1 phần tử
B
0
X


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status