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

Min-Max Heaps


ฮีปขั้นต่ำ-สูงสุดถูกกำหนดให้เป็นทรีไบนารีที่สมบูรณ์ซึ่งมีระดับต่ำสุด (หรือคู่) และสูงสุด (หรือคี่) สลับกัน ระดับคู่จะแสดงเช่น 0, 2, 4 เป็นต้น และระดับคี่จะแสดงเป็น 1, 3, 5 เป็นต้น

เราจะพิจารณาในประเด็นต่อไปว่าองค์ประกอบรากอยู่ที่ระดับแรก นั่นคือ 0

Min-Max Heaps

ตัวอย่างฮีปต่ำสุด-สูงสุด

คุณสมบัติของฮีปต่ำสุด-สูงสุด

  • แต่ละโหนดในฮีปต่ำสุด-สูงสุดเชื่อมโยงกับสมาชิกข้อมูล (ปกติเรียกว่าคีย์) ซึ่งค่าจะถูกนำไปใช้ในการคำนวณลำดับของโหนดในฮีปต่ำสุด-สูงสุด
  • องค์ประกอบรากคือองค์ประกอบขั้นต่ำในฮีปต่ำสุด-สูงสุด
  • หนึ่งในสององค์ประกอบในระดับที่สอง ซึ่งเป็นระดับสูงสุด (หรือคี่) คือองค์ประกอบสูงสุดในฮีปต่ำสุด-สูงสุด
  • ให้ y เป็นโหนดใดๆ ในฮีปต่ำสุด-สูงสุด
  • หาก y อยู่ที่ระดับต่ำสุด (หรือแม้กระทั่ง) ดังนั้น y.key จะเป็นคีย์ที่เล็กที่สุดในบรรดาคีย์ทั้งหมดในทรีย่อยที่มีรูท y
  • หาก y อยู่ในระดับสูงสุด (หรือคี่) y.key จะเป็นคีย์สูงสุดในบรรดาคีย์ทั้งหมดในทรีย่อยที่มีรูท y
  • โหนดในระดับต่ำสุด (สูงสุด) จะแสดงเป็นโหนดขั้นต่ำ (สูงสุด)

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