Sobes.tech
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:

  1. 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.
  2. 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.