Một đống ghép nối có thể là một đống trống hoặc một cây ghép nối có chứa một phần tử gốc và một danh sách có thể trống các cây ghép nối.
Thuộc tính sắp xếp theo thứ tự heap cần nguồn gốc của bất kỳ nút nào không lớn hơn chính nút đó.
Mô tả sau đây coi một đống chức năng thuần túy không hỗ trợ thao tác phím giảm.
type PairingTree [Element] =Heap (element:Element, subheaps:List [PairingTree [Element]])
gõ PairingHeap [Element] =Empty | PairingTree [Phần tử]
Các đống ghép đôi tồn tại ở hai loại - đống ghép đôi tối thiểu và đống ghép nối tối đa. Các đống ghép nối tối thiểu được triển khai khi chúng tôi muốn đại diện cho một hàng đợi ưu tiên tối thiểu và các đống ghép nối tối đa được triển khai cho các hàng đợi ưu tiên tối đa. Theo thảo luận của chúng tôi về đống và cây cánh tả trong văn bản, chúng tôi thảo luận rõ ràng về các đống ghép nối tối đa ở đây. Các đống ghép nối tối thiểu có thể là tương tự.
Một đống ghép nối tối đa được định nghĩa đơn giản là một cây tối đa.
Bốn đống ghép nối tối đa được hiển thị bên dưới. Lưu ý rằng một đống ghép nối không yêu cầu phải là một cây nhị phân.