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.