วิธีติดตั้งลำดับความสำคัญใน C ++



บทความนี้จะให้ความรู้โดยละเอียดและครอบคลุมเกี่ยวกับวิธีใช้คิวลำดับความสำคัญใน C ++ พร้อมตัวอย่าง

ลำดับความสำคัญคิวคือคอนเทนเนอร์ใน 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

สิ่งสำคัญคือต้องรวมไฟล์ส่วนหัวไว้ในโปรแกรมเพื่อใช้ลำดับความสำคัญ

ลำดับความสำคัญใน c ++ตัวอย่างเช่นหากเราเพิ่ม 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

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด