Yığınlar ve Öncelik Kuyrukları Nedir?
Veri yapıları, bilgisayar biliminin temel taşlarından olup, verilerin organize edilmesi ve yönetilmesi için çeşitli yöntemler sunar. Yığınlar (stack) ve öncelik kuyrukları (priority queue), bu veri yapılarından ikisidir ve farklı kullanım senaryolarında öne çıkarlar.
Yığınlar, 'Son Giren İlk Çıkar' (LIFO) prensibine göre çalışan bir soyut veri tipidir. Öncelik kuyrukları ise, her elemanın bir önceliğe sahip olduğu ve en yüksek öncelikli elemanın her zaman ilk çıkarıldığı bir veri yapısıdır.
Adım adım çözümlü örnekler
Yığın (Stack) Kullanım Örneği: Geri Al (Undo) Fonksiyonu
1. Kullanıcı bir işlem yapar (örn: metin yazma). 2. Yapılan işlem yığına eklenir (push). 3. Kullanıcı 'geri al' dediğinde, en son eklenen işlem yığından çıkarılır (pop) ve geri alınır. 4. Bu işlem, yığının LIFO özelliğini kullanır.
Öncelik Kuyruğu (Priority Queue) Kullanım Örneği: İşletim Sistemi Görev Zamanlaması
1. İşletim sistemine çeşitli görevler gelir (örn: yazdırma, dosya indirme). 2. Her göreve bir öncelik atanır (örn: sistem işlemleri yüksek öncelikli). 3. Görevler öncelik kuyruğuna eklenir. 4. İşlemci, her zaman en yüksek öncelikli görevi kuyruktan alıp çalıştırır.
Bilgi kartları
Mini test
S1.Bir yığında (stack) en son eklenen elemanın ilk çıkarılması prensibi nedir?
S2.Aşağıdakilerden hangisi öncelik kuyruğunun temel özelliğidir?
S3.Bir web tarayıcısındaki 'Geri' (Back) butonu hangi veri yapısına benzer?
Sık yapılan hatalar
Yığınlar FIFO prensibine göre çalışır. — Doğrusu: Yığınlar LIFO prensibine göre çalışır.
Öncelik kuyruklarında tüm elemanlar eşit önceliğe sahiptir. — Doğrusu: Öncelik kuyruklarında elemanlar farklı önceliklere sahip olabilir ve en yüksek öncelikli olan ilk çıkar.
Sıkça sorulan sorular
Yığın ve Sıra (Queue) arasındaki temel fark nedir?
Yığınlar LIFO (Son Giren İlk Çıkar) prensibine göre çalışırken, sıralar FIFO (İlk Giren İlk Çıkar) prensibine göre çalışır.
Öncelik kuyrukları nerede kullanılır?
Öncelik kuyrukları, işletim sistemlerinde görev zamanlaması, ağ yönlendiricilerinde paket işleme, grafik algoritmaları (örn: Dijkstra) ve veritabanı yönetim sistemlerinde kullanılır.
Yığınlar hangi durumlarda tercih edilir?
Yığınlar, fonksiyon çağrılarını yönetmek (çağrı yığını), geri alma (undo) mekanizmaları oluşturmak, özyinelemeli algoritmaları dönüştürmek ve ifade değerlendirmelerinde kullanılır.