Hàng đợi (Queue) là cấu trúc dữ liệu First In First Out (FIFO). Dùng trong duyệt đồ thị BFS, v.v. Queue có các thao tác nguyên thủy. Phần này xem các thao tác và ví dụ dùng Queue ADT.
ADT (Abstract Data Type) là kiểu dữ liệu đặc biệt, hành vi định nghĩa bởi tập giá trị và tập thao tác. Logic hoạt động bị ẩn khỏi người dùng.
Các thao tác Queue ADT
- isFull() – Kiểm tra queue có đầy không
- isEmpty() – Kiểm tra queue có rỗng không
- enqueue(x) – Thêm x vào cuối queue
- dequeue() – Xóa phần tử từ đầu queue
- front() – Lấy phần tử đầu queue (không xóa)
- size() – Số phần tử trong queue
Ví dụ C++
#include <iostream>
#include <queue>
using namespace std;
int main() {
queue<int> que;
if(que.empty()) cout << "Queue is empty" << endl;
else cout << "Queue is not empty" << endl;
// insert
que.push(10); que.push(20); que.push(30); que.push(40); que.push(50);
cout << "Size of the queue: " << que.size() << endl;
// delete and display
while(!que.empty()) {
int item = que.front();
que.pop();
cout << item << " ";
}
}
Kết quả
Queue is empty Size of the queue: 5 10 20 30 40 50