ลำดับความสำคัญคิวคือคอนเทนเนอร์ใน STL มันคล้ายกับคิวยกเว้นข้อเท็จจริงที่ว่าแต่ละองค์ประกอบของลำดับความสำคัญมีลำดับความสำคัญที่แน่นอนและเมื่อเรานำองค์ประกอบจากคิวลำดับความสำคัญองค์ประกอบที่มีลำดับความสำคัญสูงสุดจะปรากฏขึ้นก่อน เช่นเดียวกับคิวลำดับความสำคัญมีคอนเทนเนอร์ 10 ประเภทใน STL . คอนเทนเนอร์คือวัตถุที่เก็บข้อมูล คอนเทนเนอร์ STL ถูกนำไปใช้ด้วยความช่วยเหลือของคลาสเทมเพลตดังนั้นการปรับแต่งเพื่อเก็บข้อมูลประเภทต่างๆจึงเป็นเรื่องง่าย ในโพสต์นี้เราจะพูดถึงลำดับความสำคัญและแนวคิดที่เกี่ยวข้องโดยละเอียด คำแนะนำต่อไปนี้จะกล่าวถึงในคิวลำดับความสำคัญนี้ในบทความ C ++
วิธีการเพิ่มจำนวนเป็นพาวเวอร์ใน java
ไปต่อกับบทความนี้เรื่อง Priority Queue ใน C ++
ส่วนประกอบของ STL
STL ประกอบด้วยคลาสเทมเพลตและฟังก์ชันซึ่งสามารถใช้เป็นแนวทางมาตรฐานในการจัดเก็บและประมวลผลข้อมูล เรามาดูส่วนประกอบของ STL กัน
ตู้คอนเทนเนอร์ - มีคอนเทนเนอร์ 10 ประเภทที่กำหนดไว้ใน STL และแบ่งออกเป็น 3 ประเภท จากทั้ง 3 นี้คิวลำดับความสำคัญอยู่ในหมวดหมู่ของคอนเทนเนอร์ที่ได้รับ คลาสคอนเทนเนอร์แต่ละคลาสมีชุดฟังก์ชันของตัวเองที่สามารถใช้จัดการข้อมูลได้
อัลกอริทึม - อัลกอริทึมเป็นวิธีการที่ใช้ในการประมวลผลข้อมูลที่มีอยู่ในออบเจ็กต์คอนเทนเนอร์ STL มีอัลกอริทึมประเภทต่างๆมากมายซึ่งสามารถใช้ในการเริ่มต้นการค้นหาการเรียงลำดับการรวมการคัดลอก อัลกอริทึมถูกนำไปใช้ด้วยความช่วยเหลือของฟังก์ชันเทมเพลต
Iterator- ตัววนซ้ำเป็นวัตถุที่ชี้ไปยังองค์ประกอบในคอนเทนเนอร์ ตัวทำซ้ำสามารถช่วยใช้ในการเคลื่อนย้ายเนื้อหาของคอนเทนเนอร์ ตัวทำซ้ำเป็นเหมือนตัวชี้ที่สามารถเพิ่มและลดได้ ทำหน้าที่เป็นตัวเชื่อมระหว่างอัลกอริทึมและคอนเทนเนอร์ ตัวทำซ้ำใช้สำหรับจัดการข้อมูลที่เก็บไว้ในคอนเทนเนอร์
ไปต่อกับบทความนี้เรื่อง Priority Queue ใน C ++
ฮีปและคิวลำดับความสำคัญ
ดังที่เราเห็นก่อนหน้านี้ Priority Queue อยู่ในหมวดหมู่ของคอนเทนเนอร์ที่ได้รับ สมาชิกคนอื่น ๆ ของหมวดหมู่นี้ ได้แก่ กองซ้อนและคิว คอนเทนเนอร์ที่ได้รับเหล่านี้เรียกอีกอย่างว่าคอนเทนเนอร์อะแดปเตอร์
สแต็กคิวและคิวลำดับความสำคัญเรียกว่าคอนเทนเนอร์ที่ได้รับเนื่องจากทำจากคอนเทนเนอร์ลำดับที่ต่างกัน คอนเทนเนอร์เหล่านี้ไม่รองรับตัวทำซ้ำทุกประเภทที่ไม่ได้ใช้สำหรับการจัดการข้อมูล
ลำดับความสำคัญคืออะไร?
พูดง่ายๆก็คือคอนเทนเนอร์ที่เราใช้เก็บข้อมูล แต่ละองค์ประกอบของข้อมูลที่จัดเก็บจะถูกกำหนดลำดับความสำคัญบางอย่างซึ่งสามารถช่วยเราในการจัดเก็บข้อมูลตามลำดับตรรกะ
ไวยากรณ์:priority_queue variable_name
สิ่งสำคัญคือต้องรวมไฟล์ส่วนหัวไว้ในโปรแกรมเพื่อใช้ลำดับความสำคัญ
ตัวอย่างเช่นหากเราเพิ่ม 2, 10, 30, 5, 6 ในคิวลำดับความสำคัญของเราโดยใช้ฟังก์ชันพุชจากนั้นป๊อปองค์ประกอบโดยใช้ฟังก์ชันป๊อปเอาต์พุตจะเป็น 30, 10, 6, 5, 2
วิธีการใช้งานฮีป
เอาล่ะตอนนี้เรารู้จุดประสงค์หรือการใช้ลำดับความสำคัญแล้ว แต่มันรู้ได้อย่างไรว่า 30> 10? มีการจัดเรียงบางประเภทหรือไม่? เมื่อถึงจุดนี้ Heaps จะเข้ามาในภาพ หากต้องการเรียนรู้เกี่ยวกับฮีปโดยละเอียดโปรดอ่านบทความนี้
Heaps- กองเป็นโครงสร้างคล้ายต้นไม้ ขึ้นอยู่กับวิธีการจัดเรียงโหนดองค์ประกอบลูกในฮีปที่เกี่ยวกับโหนดหลักฮีปจะแบ่งออกเป็น 2 ส่วน
หนึ่ง. กองต่ำ - ใน Min Heap ค่าของโหนดแม่จะน้อยกว่าหรือเท่ากับค่าของโหนดลูก
2. กองสูงสุด - ใน Max Heap ค่าของโหนดแม่มากกว่าหรือเท่ากับค่าของโหนดลูก
บันทึก- ลำดับความสำคัญไม่เรียงลำดับองค์ประกอบโดยใช้อัลกอริทึมการจัดเรียงบางอย่างแทนที่จะจัดเก็บข้อมูลในรูปแบบของฮีป
ไปต่อกับบทความนี้เรื่อง Priority Queue ใน C ++
การพิมพ์องค์ประกอบทั้งหมดของคิวลำดับความสำคัญ
หลังจากทำความเข้าใจพื้นฐานของลำดับความสำคัญแล้วเรามาติดตั้งโปรแกรมเพื่อทำความเข้าใจวิธีการที่ใช้บ่อยที่สุดด้วยลำดับความสำคัญ
#include #include โดยใช้ namespace std int main () {priority_queue Prior_q Prior_q.push (10) Prior_q.push (30) Prior_q.push (6) Prior_q.push (2) Prior_q.push (15) Prior_q.push (9) Prior_q.push (7) ในขณะที่ (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }
เอาท์พุต:
30 15 10 9 6 2
ในโปรแกรมข้างต้นเราใช้ฟังก์ชัน pop (), top () และ push () ซึ่งใช้บ่อยที่สุดในขณะที่จัดการกับลำดับความสำคัญ มาดูวิธีการบางอย่างที่เราสามารถใช้กับลำดับความสำคัญได้
ขนาด (): ฟังก์ชันนี้ส่งคืนขนาดของคิวลำดับความสำคัญ
ว่างเปล่า (): ฟังก์ชันนี้ใช้เพื่อตรวจสอบว่าลำดับความสำคัญคิวว่างหรือไม่ มันส่งคืนจริงของคิวลำดับความสำคัญว่างเปล่า
ดัน (): แทรกองค์ประกอบในคิวลำดับความสำคัญ
ป๊อป (): ฟังก์ชันนี้จะลบองค์ประกอบบนสุดของลำดับความสำคัญซึ่งเป็นองค์ประกอบที่มีลำดับความสำคัญสูงสุด
แลกเปลี่ยน (): ฟังก์ชันนี้จะสลับองค์ประกอบของลำดับความสำคัญกับคิวลำดับความสำคัญอื่น ฟังก์ชันใช้ลำดับความสำคัญคิวเป็นพารามิเตอร์
แปลง java สองเท่าเป็นจำนวนเต็ม
emplace (): ฟังก์ชันนี้ใช้เพื่อเพิ่มองค์ประกอบที่ด้านบนของคิวลำดับความสำคัญ
มาดูอีกหนึ่งโปรแกรม
#include #include โดยใช้ namespace std int main () {priority_queue Prior_q Prior_q.push (10) Prior_q.push (30) Prior_q.push (6) Prior_q.push (2) Prior_q.push (15) Prior_q.push (9) Prior_q.push (7) ในขณะที่ (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }
เอาท์พุต:
2 6 7 9 10 15 30
ด้วยเหตุนี้เราจึงสิ้นสุดคิวลำดับความสำคัญนี้ในบทความ C ++ หากคุณต้องการเรียนรู้เพิ่มเติมโปรดดูไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ได้รับการออกแบบมาเพื่อฝึกอบรมคุณสำหรับแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & Spring
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด