Bài tập về Queue
I. Các thao tác cơ bản với Queue
- Khởi tạo một Queue rỗng
- Thêm phần tử vào Queue (Enqueue)
- Xóa phần tử khỏi Queue (Dequeue)
- Lấy phần tử đầu hàng đợi (Front)
- Kiểm tra Queue có rỗng không
- Kiểm tra Queue có đầy không (nếu giới hạn kích thước)
- In tất cả phần tử trong Queue
- Đếm số lượng phần tử trong Queue
- Xóa toàn bộ Queue
- Sao chép một Queue sang Queue khác
II. Bài toán xử lý dữ liệu bằng Queue
- Tính tổng các phần tử trong Queue
- Tìm phần tử lớn nhất/nhỏ nhất trong Queue
- Đếm số phần tử chẵn/lẻ trong Queue
- Đếm số lần xuất hiện của một phần tử
- Đảo ngược các phần tử trong Queue
- Kiểm tra một phần tử có tồn tại trong Queue không
- So sánh hai Queue có giống nhau không
- Tách Queue thành hai Queue chẵn và lẻ
- Xóa tất cả các phần tử lớn hơn một giá trị cho trước
- Lọc các số nguyên tố trong Queue
III. Bài tập ứng dụng Queue trong thực tế
- Mô phỏng hệ thống xếp hàng tại ngân hàng
- Mô phỏng hệ thống đặt vé máy bay
- Mô phỏng hệ thống đặt món ăn tại quán ăn nhanh
- Mô phỏng hệ thống xếp hàng khám bệnh
- Mô phỏng hệ thống xử lý yêu cầu trong hệ điều hành
- Mô phỏng hàng đợi xe vào bãi đỗ
- Lưu trữ lịch sử tác vụ theo thứ tự xử lý
- Mô phỏng hàng đợi khách hàng trong siêu thị
- Mô phỏng hệ thống in tài liệu từ nhiều máy
- Giải bài toán mô phỏng cuộc gọi tổng đài
IV. Bài tập về Circular Queue (Queue vòng)
- Khởi tạo một Circular Queue
- Kiểm tra Queue vòng đầy hoặc rỗng
- Thêm phần tử vào Queue vòng
- Xóa phần tử khỏi Queue vòng
- In tất cả phần tử trong Queue vòng
- Đếm số phần tử trong Queue vòng
- Xoay vòng Queue sang trái
- Xoay vòng Queue sang phải
- Đảo ngược thứ tự phần tử trong Queue vòng
- Kiểm tra số lần quay vòng cần để trở lại trạng thái ban đầu
V. Queue nâng cao và bài toán phức tạp
- Hiện thực một Deque (Double-ended Queue)
- Tách Queue thành hai Queue bằng nhau
- Tìm phần tử giữa của Queue
- Chuyển Queue thành Stack và ngược lại
- Mô phỏng bộ nhớ cache dùng Queue
- Sử dụng Queue để duyệt cây nhị phân theo chiều rộng (BFS)
- Sử dụng Queue để duyệt đồ thị theo chiều rộng
- Xây dựng hàng đợi ưu tiên (Priority Queue)
- Gộp hai Queue lại thành một Queue duy nhất
- Sắp xếp các phần tử trong Queue theo thứ tự tăng dần