Middle
რა კლასიფიკაციები არსებობს მონაცემთა სტრუქტურების კონტექსტში?
sobes.tech AI
პასუხი AI-სგან
მონაცემთა სტრუქტურების კონტექსტში, ტერმინით "მოყრა" (Heap) ჩვეულებრივ იგულისხმება ბინარული მოყრა (Binary Heap), რომელიც აქვს შემდეგი კლასიფიკაციები:
-
საწესის ტიპის მიხედვით:
- მინიმალური მოყრა (Min-Heap): თითოეული კვანძის მნიშვნელობა ნაკლებია ან ტოლი მისი შვილების მნიშვნელობებს. ძირი არის მინიმალური ელემენტი.
- მაქსიმალური მოყრა (Max-Heap): თითოეული კვანძის მნიშვნელობა მეტია ან ტოლი მისი შვილების მნიშვნელობებს. ძირი არის მაქსიმალური ელემენტი.
-
ხის სრულიობის მიხედვით:
- სრული ბინარული მოყრა (Complete Binary Heap): ყველა დონე, გარდა შესაძლოა ბოლო, სრულად არის შევსებული, ხოლო ბოლო დონეზე მდებარე კვანძები განლაგებულია რაც შეიძლება მარცხნივ. ეს თვისება მნიშვნელოვანია, რადგან საშუალებას აძლევს ეფექტურად შეინახოს მოყრა მასივში.
// მაგალითი სტრუქტურა მოყრის კვანძისთვის (კონცეპტის დემონსტრაციისთვის) public class HeapNode<T> { public T Value { get; set; } // შვილების კვანძებზე მითითებები არ არის ყოველთვის აშკარა მასივური წარმოდგენაში public HeapNode<T> Left { get; set; } public HeapNode<T> Right { get; set; } }
მიუხედავად იმისა, რომ არსებობს სხვა ტიპის მოყრებიც, როგორიცაა ფიბონაჩჩის მოყრა (გაღრმავებული ალგორითმებისთვის) ან ბინომული მოყრა, უმეტეს შემთხვევაში, "მოყრა" კონკრეტულად გულისხმობს სრულ ბინარულ მინიმალურ ან მაქსიმალურ მოყრას, მათი ფართო გამოყენების გამო სორტირების ალგორითმებში (მაგ., Heapsort) და პრიორიტეტული რიგებში.