Yığınlar ve Kuyruklar Nedir?
Bilgisayar mühendisliğinde yığınlar (stack) ve kuyruklar (queue), verilerin belirli kurallara göre saklandığı ve erişildiği temel veri yapılarıdır. Her ikisi de eleman ekleme ve çıkarma işlemlerini tanımlar ancak bu işlemlerin sırası farklıdır.
Yığınlar, 'Son Giren İlk Çıkar' (LIFO) prensibine göre çalışırken, kuyruklar 'İlk Giren İlk Çıkar' (FIFO) prensibine göre çalışır.
Adım adım çözümlü örnekler
Yığın (Stack) Örneği: Bir web tarayıcısında 'Geri' tuşuna basmak.
1. Her ziyaret edilen sayfa yığına eklenir (push). 2. 'Geri' tuşuna basıldığında en son eklenen sayfa yığından çıkarılır (pop) ve görüntülenir.
Kuyruk (Queue) Örneği: Bir yazıcının iş kuyruğu.
1. Yazdırılacak her belge kuyruğa eklenir (enqueue). 2. Belgeler, eklenme sırasına göre (ilk gelen ilk yazdırılır) kuyruktan çıkarılır (dequeue) ve yazdırılır.
Yığın Kullanım Alanı: Fonksiyon çağrıları ve geri alma (undo) işlemleri.
Fonksiyon çağrılarında geri dönülecek adresler yığına itilir. Geri alma (undo) işlemlerinde yapılan eylemler yığına eklenir ve geri alınırken yığından çıkarılır.
Kuyruk Kullanım Alanı: İşletim sistemlerinde görev zamanlama ve ağ paketlerinin iletimi.
İşletim sistemleri, CPU'ya hangi işlemin ne zaman çalışacağını belirlemek için kuyrukları kullanır. Ağlarda paketler, iletim sırasına göre kuyruklarda bekletilir.
Bilgi kartları
Mini test
S1.Bir web tarayıcısının 'Geri' butonu hangi veri yapısını kullanır?
S2.Bir yazıcının yazdırma sırası hangi veri yapısına örnektir?
S3.Aşağıdakilerden hangisi yığın (stack) için kullanılan bir terimdir?
Sık yapılan hatalar
Yığınlar, ilk giren elemanın ilk çıktığı FIFO prensibiyle çalışır. — Doğrusu: Yığınlar, son giren elemanın ilk çıktığı LIFO prensibiyle çalışır.
Kuyruklara eleman eklemeye 'Push', çıkarmaya ise 'Dequeue' denir. — Doğrusu: Kuyruklara eleman eklemeye 'Enqueue', çıkarmaya ise 'Dequeue' denir.
Sıkça sorulan sorular
Yığın ve Kuyruk arasındaki temel fark nedir?
Temel fark, elemanların eklenme ve çıkarılma sırasıdır: Yığın LIFO (Son Giren İlk Çıkar), Kuyruk ise FIFO (İlk Giren İlk Çıkar) prensibini izler.
Yığın ve Kuyruk nerede kullanılır?
Yığınlar fonksiyon çağrılarında, geri alma (undo) işlemlerinde kullanılırken; kuyruklar yazıcı sıralarında, görev zamanlamada, ağ iletişiminde kullanılır.
Yığın ve Kuyruk veri yapıları nasıl uygulanır?
Genellikle diziler (array) veya bağlı listeler (linked list) kullanılarak uygulanabilirler.