Middle
Aké sú klasifikácie hald v kontexte dátových štruktúr?
sobes.tech AI
Odpoveď od AI
V kontexte dátových štruktúr sa pod pojmom "hromáda" (Heap) zvyčajne rozumie binárna hromáda (Binary Heap), ktorá má nasledujúce klasifikácie:
-
Podľa typu usporiadania:
- Min-hromáda (Min-Heap): Hodnota každého uzla je menšia alebo rovná hodnotám jeho detí. Koreň je najmenší prvok.
- Max-hromáda (Max-Heap): Hodnota každého uzla je väčšia alebo rovná hodnotám jeho detí. Koreň je najväčší prvok.
-
Podľa úplnosti stromu:
- Kompletná binárna hromáda (Complete Binary Heap): Všetky úrovne, okrem možno poslednej, sú úplne zaplnené a uzly na poslednej úrovni sú usporiadané čo najviac vľavo. Táto vlastnosť je dôležitá, pretože umožňuje efektívne uloženie hromády v poli.
// Príklad štruktúry pre uzol hromády (na demonštráciu konceptu) public class HeapNode<T> { public T Value { get; set; } // Odkazy na detské uzly nie sú vždy explicitné v reprezentácii v poli public HeapNode<T> Left { get; set; } public HeapNode<T> Right { get; set; } }
Hoci existujú aj iné typy hromád, ako Fibonacci hromáda (pre pokročilé algoritmy) alebo binomická hromáda, vo väčšine prípadov sa "hromáda" odkazuje na úplnú binárnu min- alebo max-hromádu, kvôli ich širokému využitiu v triediacich algoritmoch (napríklad Heapsort) a prioritných frontoch.