Computer >> Máy Tính >  >> Lập trình >> C ++

Hàng đợi ưu tiên trong Thư viện mẫu chuẩn C ++ (STL)

Hàng đợi ưu tiên là một kiểu dữ liệu trừu tượng để lưu trữ tập hợp các phần tử được ưu tiên hỗ trợ việc chèn và xóa một phần tử dựa trên mức độ ưu tiên của chúng, nghĩa là phần tử có mức độ ưu tiên đầu tiên có thể bị xóa bất kỳ lúc nào. Hàng đợi ưu tiên không lưu trữ các phần tử theo kiểu tuyến tính liên quan đến vị trí của chúng như trong Ngăn xếp, Hàng đợi, Danh sách, v.v. Hàng đợi ưu tiên ADT (kiểu dữ liệu trừu tượng) lưu trữ các phần tử dựa trên mức độ ưu tiên của chúng.

Hàng đợi ưu tiên hỗ trợ các chức năng sau -

Kích thước () - nó được sử dụng để tính toán kích thước của hàng đợi ưu tiên vì nó trả về số phần tử trong đó.

Rỗng () - nó trả về true nếu Hàng đợi ưu tiên trống và false nếu ngược lại

Chèn (phần tử) - được sử dụng để chèn phần tử mới vào Hàng đợi Ưu tiên

Tối thiểu () - nó trả về phần tử có giá trị khóa liên quan nhỏ nhất và hiển thị thông báo lỗi nếu Hàng đợi ưu tiên trống.

removeMin () - nó loại bỏ phần tử được tham chiếu bởi hàm min ().

Dưới đây là bảng hiển thị ảnh hưởng của các hoạt động đối với hàng đợi ưu tiên

Hàng đợi ưu tiên trong Thư viện mẫu chuẩn C ++ (STL)

Start
Step 1-> Declare function to display the elements in a Priority Queue
   void display(priority_queue <int> Pq)
   declare and set priority_queue <int> que = Pq
   Loop While (!que.empty())
      call que.top()
      call que.pop()
   End
Step 2-> In main()
Create object of priority_queue <int> Pq
   Call push() to insert element in a priority queue as Pq.push(1)
   Call display(Pq)
   Call to check the size of a priority queue Pq.size()
   Call to display the top element of a priority queue Pq.top()
   Call to remove the elements of a priority queue Pq.pop()
   Call display(Pq)
Stop

Ví dụ

#include <iostream>
#include <queue>
using namespace std;
void display(priority_queue <int> Pq) {
   priority_queue <int> que = Pq;
   while (!que.empty()) {
      cout << '\t' << que.top();
      que.pop();
   }
   //cout << '\n';
}
int main () {
   priority_queue <int> Pq;
   Pq.push(1);
   Pq.push(3);
   Pq.push(5);
   Pq.push(7);
   Pq.push(9);
   cout << "The priority queue is : ";
   display(Pq);
   cout << "\nPrioriy queue size using size() : " << Pq.size();
   cout << "\nFirst element of priority queue using top(): " << Pq.top();
   cout << "\nremoving element using pop() : ";
   Pq.pop();
   display(Pq);
   return 0;
}

Đầu ra

The priority queue is : 9 7 5 3 1
Prioriy queue size using size() : 5
First element of priority queue using top(): 9
removing element using pop() : 7 5 3 1