Middle
Programlama bağlamında yığın nedir ve hangi tür yığınlar mevcuttur?
sobes.tech yapay zeka
AI'dan gelen yanıt
Yığın (Heap), programın çalışması sırasında dinamik bellek tahsisi için kullanılan, rastgele erişimli bellek alanıdır.
Ana özellikler:
- Bellek, programcı (veya çöp toplayıcı) tarafından açıkça tahsis edilir ve serbest bırakılır.
- Bellek bloklarının tahsisi/serbest bırakılması için katı bir sıralama yoktur.
- Bellek yönetimi, yığında olduğundan daha karmaşıktır ve parçalanma ve bellek sızıntılarına yol açabilir.
Veri yapısı bağlamında yığın türleri:
- İkili Yığın (Binary Heap): Yığın özelliğini sağlayan ağaç. Her düğüm (kök hariç), değerinin ebeveyn değerinden küçük veya büyüktür.
- Min Yığın: Ebeveyn değeri her zaman çocukların değerlerinden küçük veya eşittir. En küçük öğe köktedir.
- Max Yığın: Ebeveyn değeri her zaman çocukların değerlerinden büyük veya eşittir. En büyük öğe köktedir.
- Binom Yığını (Binomial Heap): Belirli özellikleri sağlayan binomiyal ağaçların koleksiyonu. Verimli birleşme işlemleri destekler.
- Fibonacci Yığını (Fibonacci Heap): Dijkstra algoritması gibi algoritmalarda kullanılan veri yapısı. Bazı işlemler için daha verimli amortize zamanlar sağlar.
- Eşleştirme Yığını (Pairing Heap): Uygulaması kolay ve iyi amortize zamanlara sahip basit bir veri yapısı.
- Sol Yığın (Leftist Heap): Verimli birleşmeyi kolaylaştıran veri yapısı. Önemli bir özelliği "rütbe" veya "sıfır uzunluk yolu" dür ve hızlı birleşme için kullanılır.
Bu yığın türleri, sıralama (Heap Sort), öncelikli kuyrukların uygulanması, en kısa yol algoritmaları gibi çeşitli algoritmalarda kullanılır. Belirli bir yığın türünün seçimi, gereken işlemler ve zaman verimliliğine bağlıdır.