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

คิวลำดับความสำคัญแบบคู่


การมีอยู่ของวิธีการทั่วไปที่จะมาถึงโครงสร้างข้อมูล DEPQ (Double Ended Priority Queue) ที่มีประสิทธิภาพจากโครงสร้างข้อมูล single-ended Priority Queue (PQ) ที่ให้การนำการดำเนินการลบ (bNode) ไปใช้อย่างมีประสิทธิภาพ (การดำเนินการนี้จะกำจัดโหนด bNode จาก ป.ป.ช.) วิธีที่ง่ายที่สุดของวิธีเหล่านี้ คือวิธีโครงสร้างแบบคู่ ซึ่งจะรักษาทั้ง PQ ขั้นต่ำและ PQ สูงสุดขององค์ประกอบ DEPQ ทั้งหมดที่เกี่ยวข้องกับตัวชี้การติดต่อระหว่างโหนดของ PQ ขั้นต่ำและ PQ สูงสุดที่ประกอบด้วยองค์ประกอบเดียวกัน

รูปที่ D แสดงโครงสร้างฮีปแบบคู่สำหรับองค์ประกอบ 7, 8, 3, 6, 5 ตัวชี้การโต้ตอบจะแสดงเป็นลูกศรสีแดง

คิวลำดับความสำคัญแบบคู่

รูป D:ฮีปแบบคู่

แม้ว่ารูปจะแสดงแต่ละองค์ประกอบที่จัดเก็บไว้ในฮีปขั้นต่ำและสูงสุด แต่ก็จำเป็นต้องเก็บแต่ละองค์ประกอบไว้ในฮีปหนึ่งในสองฮีปเท่านั้น

การดำเนินการ isEmpty และ size ถูกนำไปใช้โดยการใช้ขนาดตัวแปรที่ติดตามจำนวนองค์ประกอบใน DEPQ อิลิเมนต์ต่ำสุดจะอยู่ที่รูทของฮีปขั้นต่ำ และอิลิเมนต์สูงสุดจะอยู่ที่รูทของฮีปสูงสุด ในการแทรกองค์ประกอบ B เราแทรก B ลงในฮีปต่ำสุดและสูงสุด จากนั้นตั้งค่าพอยน์เตอร์การโต้ตอบระหว่างตำแหน่งของ B ในฮีปขั้นต่ำและสูงสุด ในการกำจัดองค์ประกอบขั้นต่ำ เราทำ RemoveMin จากฮีปขั้นต่ำและการลบ (bNode) โดยที่ bNode เป็นโหนดที่เกี่ยวข้องสำหรับองค์ประกอบที่ถูกลบออกจากฮีปสูงสุด องค์ประกอบสูงสุดจะถูกกำจัดในลักษณะที่คล้ายคลึงกัน