Menu
CoddyTech

Hàng đợi

Bài học 11 trên 23 trong khóa học C++ - Thư viện mẫu chuẩn của Coddy.

Hàng đợi C++ là một cấu trúc dữ liệu cung cấp chức năng của hàng đợi, chính xác hơn là tuân theo nguyên tắc FIFO (vào trước, ra trước). Điều này có nghĩa là các phần tử được thêm vào hàng đợi trước sẽ rời khỏi hàng đợi hoặc bị xóa khỏi hàng đợi trước.


queue<dataType> queueName;

Để tạo một hàng đợi trong C++, chúng ta cần thêm tệp tiêu đề queue vào đầu tệp C++ bằng cách sử dụng #include <queue>.

Bây giờ, chúng ta có thể khai báo một hàng đợi trong chương trình như sau:

queue<int> queueOfNums;

Chúng ta cần tìm hiểu cách thêm phần tử mới vào hàng đợi. Ta làm việc này bằng phương thức push(). Phương thức push() chèn một phần tử mới vào cuối hàng đợi.

queueOfNums.push(1);
queueOfNums.push(2);
...

Tiếp theo, chúng ta muốn hiển thị các phần tử của hàng đợi. Vì đây là hàng đợi, chúng ta có thể hiển thị phần tử đầu tiên được thêm vào hàng đợi. Để làm việc đó, ta dùng phương thức front(). Phương thức này trả về phần tử đầu tiên của hàng đợi.

cout << queueOfNums.front();
Output:
1

Khác với ngăn xếp, nơi chúng ta chỉ có thể in ra phần tử trên cùng, tức phần tử cuối cùng của ngăn xếp, với hàng đợi, chúng ta cũng có thể in ra giá trị cuối cùng của hàng đợi. Ta làm việc này bằng phương thức back(), phương thức này trả về phần tử cuối cùng của hàng đợi.

queueOfNums.push(3);
cout << queueOfNums.back();
Output:
3

Chúng ta cũng cần tìm hiểu cách xóa các phần tử khỏi hàng đợi. Rất tiếc, chúng ta chỉ có thể xóa phần tử ở đầu hàng đợi và được thêm vào trước tiên, vì đây vẫn là hàng đợi, nên chúng ta không thể xóa phần tử cuối cùng trước. Ta dùng ngăn xếp cho việc đó, theo nguyên tắc LIFO (vào sau, ra trước).

Vậy nên, chúng ta xóa phần tử ở đầu hàng đợi bằng phương thức pop().

queueOfNums.pop();
cout << queueOfNums.front() << endl;
queueOfNums.pop();
cout << queueOfNums.front();
Output:
1
2

Các phương thức của hàng đợi

Phương thứcChức năng
size()Trả về số phần tử trong hàng đợi
empty()Trả về true nếu hàng đợi trống, nếu không thì trả về false
swap()Hoán đổi nội dung của một hàng đợi với hàng đợi khác
challenge icon

Thử thách

Dễ

Cho 10 số từ đầu vào. Dùng hàng đợi, lần lượt lấy từng số ra và chỉ in ra các số chẵn.

 

Input
1 2 3 4 5 6 7 8 9 10
Output
2 4 6 8 10

Tự làm thử

#include <queue>
#include <iostream>

using namespace std;

int main()
{
    // Enter your code here

    return 0;
}

Tất cả bài học trong C++ - Thư viện mẫu chuẩn

Tự luyện tập: Trình biên dịch C++ online