Middle
Millised on virnade klassifikatsioonid andmestruktuuride kontekstis?
sobes.tech AI
Vastus AI-lt
Kontekstis andmestruktuurides, terminiga "hõbe" (Heap) tavaliselt mõistetakse binaarhõbe (Binary Heap), millel on järgmised klassifikatsioonid:
-
Tüübi järgi:
- Min-hõbe (Min-Heap): Iga sõlme väärtus on väiksem või võrdne tema laste väärtustega. Juure on minimaalne element.
- Max-hõbe (Max-Heap): Iga sõlme väärtus on suurem või võrdne tema laste väärtustega. Juure on maksimaalne element.
-
Puu täielikkuse järgi:
- Täielik binaarne hõbe (Complete Binary Heap): Kõik tasemed, välja arvatud võib-olla viimane, on täielikult täidetud ning viimase taseme sõlmed paiknevad võimalikult vasakul. See omadus võimaldab tõhusalt hõbedat massiivis salvestada.
// Näide struktuurist hõbeda sõlmele (kontseptsiooni demonstreerimiseks) public class HeapNode<T> { public T Value { get; set; } // Viited laste sõlmedele ei ole alati selged massiivses esitluses public HeapNode<T> Left { get; set; } public HeapNode<T> Right { get; set; } }
Kuigi on olemas ka teisi hõbeda tüüpe, näiteks Fibonacci-hõbe (arenenumate algoritmide jaoks) või binomiaalne hõbe, viitab "hõbe" enamikul juhtudel just täielikule binaarhõbale minimaalse või maksimaalse väärtusega, kuna neid kasutatakse laialdaselt sorteerimisalgoritmides (näiteks Heapsort) ja prioriteedijärjekordades.