Middle
Kokios yra krūvų klasifikacijos duomenų struktūrų kontekste?
sobes.tech AI
Atsakymas iš AI
Duomenų struktūrų kontekste, terminas "kopa" (Heap) dažniausiai reiškia dvejetainę kopą (Binary Heap), kuri turi šias klasifikacijas:
-
Pagal rūšiavimo tipą:
- Mažiausiosios kopos (Min-Heap): Kiekvieno mazgo reikšmė yra mažesnė arba lygi jo vaikų reikšmėms. Šaknies elementas yra mažiausias.
- Didžiausiosios kopos (Max-Heap): Kiekvieno mazgo reikšmė yra didesnė arba lygi jo vaikų reikšmėms. Šaknies elementas yra didžiausias.
-
Pagal medžio pilnumą:
- Užbaigta dvejetainė kopą (Complete Binary Heap): Visų lygių, išskyrus galbūt paskutinį, yra pilnai užpildyti, o paskutinio lygio mazgai yra išdėstyti kuo arčiau kairės. Šis bruožas leidžia efektyviai saugoti kopą masyve.
// Pavyzdinė struktūra kopos mazgui (koncepto demonstracijai) public class HeapNode<T> { public T Value { get; set; } // Nuorodos į vaikų mazgus ne visada aiškios masyvo reprezentacijoje public HeapNode<T> Left { get; set; } public HeapNode<T> Right { get; set; } }
Nors egzistuoja ir kitos kopų rūšys, pavyzdžiui Fibonacci kopos (pažangiems algoritmams) ar binominės kopos, daugumoje atvejų "kopa" reiškia būtent pilną dvejetainę minimalią arba maksimalią kopą dėl jų plačios taikymo srities rūšiavimo algoritmuose (pvz., Heapsort) ir prioritetų eilėse.