Hàng đợi (
tiếng Anh: queue) là một
cấu trúc dữ liệu dùng để chứa các đối tượng làm việc theo cơ chế
FIFO (viết tắt từ tiếng Anh: First In First Out), nghĩa là "vào trước ra trước"Trong hàng đợi, các đối tượng có thể được thêm vào hàng đợi bất kỳ lúc nào, nhưng chỉ có đối tượng thêm vào đầu tiên mới được phép lấy ra khỏi hàng đợi. Thao tác thêm vào và lấy một đối tượng ra khỏi hàng đợi được gọi lần lượt là "enqueue" và "dequeue". Việc thêm một đối tượng luôn diễn ra ở cuối hàng đợi và một phần tử luôn được lấy ra từ đầu hàng đợi.Trong tin học, cấu trúc dữ liệu hàng đợi có nhiều ứng dụng: khử
đệ quy, tổ chức lưu vết các quá trình
tìm kiếm theo chiều rộng và
quay lui,
vét cạn, tổ chức quản lý và phân phối
tiến trình trong các
hệ điều hành, tổ chức
bộ đệm bàn phím.Cấu trúc dữ liệu hàng đợi có thể định nghĩa như sau: Hàng đợi là một
cấu trúc dữ liệu trừu tượng (ADT) tuyến tính. Tương tự như
ngăn xếp, hàng đợi hỗ trợ các thao tác:Các thao tác thêm, trích và huỷ một phần tử phải được thực hiện ở hai phía khác nhau của hàng đợi, do đó hoạt động của hàng đợi được thực hiện theo nguyên tắc FIFO. Cũng như ngăn xếp, cấu trúc mảng một chiều hoặc cấu trúc
danh sách liên kết có thể dùng để biểu diễn cấu trúc hàng đợi.