Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

คิวลำดับความสำคัญสิ้นสุดสองเท่าในโปรแกรม C++


ในบทช่วยสอนนี้ เราจะสร้างคิวลำดับความสำคัญแบบดับเบิ้ลเอนด์โดยใช้ชุดใน c++

มาดูขั้นตอนการสร้างคิวดับเบิ้ลเอนด์กัน

  • สร้างโครงสร้างด้วยชื่อตามที่คุณต้องการ

  • สร้างตัวแปรสำหรับคิวโดยใช้ชุด

  • ขนาด เมธอดที่คืนค่าขนาดของคิว

  • ว่างเปล่า วิธีที่ส่งคืนว่าคิวว่างหรือไม่

  • แทรก วิธีการแทรกองค์ประกอบใหม่ลงในคิว

  • get_start เมธอดที่ส่งคืนองค์ประกอบจากด้านซ้ายของคิว

  • get_end เมธอดที่ส่งคืนองค์ประกอบจากด้านขวาของคิว

  • delete_start วิธีที่ลบองค์ประกอบแรกออกจากด้านซ้าย

  • delete_end วิธีลบองค์ประกอบแรกจากด้านขวา

ตัวอย่าง

มาดูโค้ดกันเลย

#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;
}

ผลลัพธ์

หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้

is empty: True
is empty: False
end: 5
end: 4
start: 1
start: 2

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น