Trong hướng dẫn này, chúng ta sẽ tạo một hàng đợi ưu tiên hai đầu bằng cách sử dụng tập hợp trong c ++.
Hãy xem các bước để tạo hàng đợi kết thúc kép.
-
Tạo một cấu trúc có tên như bạn muốn.
-
Tạo một biến cho hàng đợi bằng cách sử dụng tập hợp.
-
kích thước phương thức trả về kích thước của hàng đợi.
-
is_empty phương thức trả về việc hàng đợi có trống hay không.
-
chèn để chèn một phần tử mới vào hàng đợi.
-
get_start phương thức trả về một phần tử từ phía bên trái của hàng đợi.
-
get_end phương thức trả về phần tử từ phía bên phải của hàng đợi.
-
delete_start phương thức xóa phần tử đầu tiên ở phía bên trái.
-
delete_end phương thức xóa phần tử đầu tiên khỏi phía bên phải.
Ví dụ
Hãy xem mã.
#include <bits/stdc++.h> using namespace std; struct doubleEndedQueue { set<int> s; int size() { return s.size(); } string is_empty() { return s.size() == 0 ? "True" : "False"; } void insert(int x) { s.insert(x); } int get_start() { return *(s.begin()); } int get_end() { return *(s.rbegin()); } void delete_start() { if (s.size() == 0) { return; } s.erase(s.begin()); } void delete_end() { if (s.size() == 0) { return; } auto end = s.end(); end--; s.erase(end); } }; int main() { doubleEndedQueue d; cout << "is empty: " << d.is_empty() << endl; d.insert(1); d.insert(2); d.insert(3); d.insert(4); d.insert(5); cout << "is empty: " << d.is_empty() << endl; cout << "end: " << d.get_end() << endl; d.delete_end(); cout << "end: " << d.get_end() << endl; cout << "start: " << d.get_start() << endl; d.delete_start(); cout << "start: " << d.get_start() << endl; return 0; }
Đầu ra
Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.
is empty: True is empty: False end: 5 end: 4 start: 1 start: 2
Kết luận
Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.