Sobes.tech
Middle

Məlumat strukturları kontekstində yığınların hansı təsnifatları mövcuddur?

sobes.tech Süni İntellekt

AI-dan cavab

Məlumatlar strukturları kontekstində, "yığım" (Heap) adətən ikili yığım (Binary Heap) kimi başa düşülür və aşağıdakı kateqoriyalara malikdir:

  1. Nizam növünə görə:

    • Minimum yığım (Min-Heap): Hər bir düyünün dəyəri onun uşa düyünlərinin dəyərlərindən kiçik və ya bərabərdir. Kök ən kiçik elementdir.
    • Maksimum yığım (Max-Heap): Hər bir düyünün dəyəri onun uşa düyünlərinin dəyərlərindən böyük və ya bərabərdir. Kök ən böyük elementdir.
  2. Ağacın tamlığına görə:

    • Tam ikili yığım (Complete Binary Heap): Bütün səviyyələr, bəlkə də sonuncusu istisna olmaqla, tam doldurulmuşdur və son səviyyədəki düyünlər mümkün qədər sola yerləşdirilmişdir. Bu xüsusiyyət yığımın massivdə səmərəli saxlanmasını təmin edir.
    // Konsepti nümayiş etdirmək üçün yığım düyünü üçün nümunə strukturu
    public class HeapNode<T>
    {
        public T Value { get; set; }
        // Uşa düyünlərinə istinadlar hər zaman açıq olmaya bilər massiv nümayişində
        public HeapNode<T> Left { get; set; }
        public HeapNode<T> Right { get; set; }
    }
    

Fərqli yığım növləri də mövcuddur, məsələn Fibonacci yığım (inkişaf etmiş alqoritmlər üçün) və ya binom yığım, lakin əksər hallarda, "yığım" termini, əsasən, geniş istifadə olunan sıralama alqoritmlərində (məsələn, Heapsort) və prioritetli növbələrdə istifadə olunan tam ikili minimum və ya maksimum yığım nəzərdə tutulur.