Programming Techniques

Bài tập về Queue

I. Các thao tác cơ bản với Queue

  1. Khởi tạo một Queue rỗng
  2. Thêm phần tử vào Queue (Enqueue)
  3. Xóa phần tử khỏi Queue (Dequeue)
  4. Lấy phần tử đầu hàng đợi (Front)
  5. Kiểm tra Queue có rỗng không
  6. Kiểm tra Queue có đầy không (nếu giới hạn kích thước)
  7. In tất cả phần tử trong Queue
  8. Đếm số lượng phần tử trong Queue
  9. Xóa toàn bộ Queue
  10. Sao chép một Queue sang Queue khác

II. Bài toán xử lý dữ liệu bằng Queue

  1. Tính tổng các phần tử trong Queue
  2. Tìm phần tử lớn nhất/nhỏ nhất trong Queue
  3. Đếm số phần tử chẵn/lẻ trong Queue
  4. Đếm số lần xuất hiện của một phần tử
  5. Đảo ngược các phần tử trong Queue
  6. Kiểm tra một phần tử có tồn tại trong Queue không
  7. So sánh hai Queue có giống nhau không
  8. Tách Queue thành hai Queue chẵn và lẻ
  9. Xóa tất cả các phần tử lớn hơn một giá trị cho trước
  10. Lọc các số nguyên tố trong Queue

III. Bài tập ứng dụng Queue trong thực tế

  1. Mô phỏng hệ thống xếp hàng tại ngân hàng
  2. Mô phỏng hệ thống đặt vé máy bay
  3. Mô phỏng hệ thống đặt món ăn tại quán ăn nhanh
  4. Mô phỏng hệ thống xếp hàng khám bệnh
  5. Mô phỏng hệ thống xử lý yêu cầu trong hệ điều hành
  6. Mô phỏng hàng đợi xe vào bãi đỗ
  7. Lưu trữ lịch sử tác vụ theo thứ tự xử lý
  8. Mô phỏng hàng đợi khách hàng trong siêu thị
  9. Mô phỏng hệ thống in tài liệu từ nhiều máy
  10. 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)

  1. Khởi tạo một Circular Queue
  2. Kiểm tra Queue vòng đầy hoặc rỗng
  3. Thêm phần tử vào Queue vòng
  4. Xóa phần tử khỏi Queue vòng
  5. In tất cả phần tử trong Queue vòng
  6. Đếm số phần tử trong Queue vòng
  7. Xoay vòng Queue sang trái
  8. Xoay vòng Queue sang phải
  9. Đảo ngược thứ tự phần tử trong Queue vòng
  10. 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

  1. Hiện thực một Deque (Double-ended Queue)
  2. Tách Queue thành hai Queue bằng nhau
  3. Tìm phần tử giữa của Queue
  4. Chuyển Queue thành Stack và ngược lại
  5. Mô phỏng bộ nhớ cache dùng Queue
  6. Sử dụng Queue để duyệt cây nhị phân theo chiều rộng (BFS)
  7. Sử dụng Queue để duyệt đồ thị theo chiều rộng
  8. Xây dựng hàng đợi ưu tiên (Priority Queue)
  9. Gộp hai Queue lại thành một Queue duy nhất
  10. Sắp xếp các phần tử trong Queue theo thứ tự tăng dần