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

รูปแบบต่างๆ ของเพียริงฮีป (Variations of Pairing Heaps)


นิยามเพียริงฮีป

เพียริงฮีป (Pairing Heap) สามารถเป็นได้สองแบบ:

  • ฮีปว่าง (Empty Heap)
  • เพียริงทรี (Pairing Tree) – ประกอบด้วยรูท (root element) และรายการของเพียริงทรีที่อาจว่างได้

คุณสมบัติการจัดลำดับฮีป

พาเรนต์ของโหนดใดๆ ต้องมีค่าไม่มากกว่าโหนดนั้นเอง (สำหรับ min-heap)

การนำเสนอแบบฟังก์ชันนิยม (Functional Representation)

type PairingTree[Element] = Heap(element: Element, subheaps: List[PairingTree[Element]])
type PairingHeap[Element] = Empty | PairingTree[Element]

สองประเภทหลัก

  • Min Pairing Heaps – ใช้แทน Min Priority Queue
  • Max Pairing Heaps – ใช้แทน Max Priority Queue

ในบทนี้เน้น Max Pairing Heaps ส่วน Min Pairing Heaps สามารถเปรียบเทียบได้โดยตรง

Max Pairing Heap คือ Max Tree

Max Pairing Heap นิยามได้อย่างง่ายว่าเป็น Max Tree โดยไม่จำเป็นต้องเป็น Binary Tree

ตัวอย่างภาพ

รูปแบบต่างๆ ของเพียริงฮีป (Variations of Pairing Heaps)

รูปแสดง Max Pairing Heaps 4 ตัว สังเกตว่าไม่จำเป็นต้องเป็น Binary Tree