Stack ve Queue: Yığın ve Kuyruk Veri Yapıları (LIFO - FIFO)

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16

Stack ve Queue: Veri Yönetiminde Düzen ve Disiplin​


Stack (Yığın) ve Queue (Kuyruk) yapılarını anlamak için günlük hayattan iki basit örnek yeterlidir: Bir üst üste dizilmiş yemek tabakları ve bir bilet kuyruğu.



1. Stack (Yığın) - LIFO Mantığı​


Stack, LIFO (Last In, First Out - Son Giren İlk Çıkar) prensibiyle çalışır. Veri ekleme ve çıkarma işlemleri sadece üstten (Top) yapılır.

Push: Yığının en üstüne yeni bir eleman ekler.

Pop: Yığının en üstündeki elemanı çıkarır.

Top (Peek): En üstteki elemanı silmeden görmenizi sağlar.

Nerelerde Kullanılır?​


Geri Al (Undo): Metin editörlerinde yaptığınız son işlem yığının en üstündedir.

Fonksiyon Çağrıları: Programınızda bir fonksiyon içinden başka fonksiyon çağırdığınızda, dönüş adresleri "Call Stack" içinde saklanır.

Parantez Kontrolü: Derleyicilerin kodunuzdaki parantez eşleşmelerini kontrol etmesi.



2. Queue (Kuyruk) - FIFO Mantığı​


Queue, FIFO (First In, First Out - İlk Giren İlk Çıkar) prensibiyle çalışır. Eleman ekleme işlemi arkadan (Rear), eleman çıkarma işlemi ise önden (Front) yapılır.

Enqueue: Kuyruğun sonuna eleman ekler.

Dequeue: Kuyruğun başındaki elemanı çıkarır.

Front: Kuyruğun en önündeki elemanı görmenizi sağlar.

Nerelerde Kullanılır?​


Yazıcı Kuyruğu: İlk gönderilen döküman ilk yazdırılır.

Bilet ve Banka Sistemleri: İlk sıraya giren ilk hizmeti alır.

Veri Paketleme: Ağ üzerinden gelen paketlerin işlenme sırası.



3. Stack ve Queue Karşılaştırma Tablosu​


ÖzellikStack (Yığın)Queue (Kuyruk)
Çalışma PrensibiLIFO (Son Giren İlk Çıkar)FIFO (İlk Giren İlk Çıkar)
Erişim NoktasıSadece en üst (Top).İki uç (Ön ve Arka).Kritik HataStack Overflow (Aşırı dolma).Kuyruk taşması.

[TR]



4. C++ STL'de Hazır Kullanım​


Kendi yapınızı struct veya class ile kurabileceğiniz gibi, C++ <stack> ve <queue> kütüphaneleriyle bu yapıları saniyeler içinde kullanıma hazır hale getirir.

C++:
#include <stack>
#include <queue>

// Stack Kullanımı
std::stack<int> yigin;
yigin.push(10); // Ekle
yigin.pop();    // Çıkar

// Queue Kullanımı
std::queue<int> kuyruk;
kuyruk.push(20); // Arkaya ekle
kuyruk.pop();    // Önden çıkar



Sonuç​


Hangi yapıyı seçeceğiniz, veriye hangi öncelikle ulaşmak istediğinize bağlıdır. Eğer son yapılan işlemi takip etmek istiyorsanız Stack, bir düzen içinde işlem sırası oluşturmak istiyorsanız Queue en doğru tercihtir.
 
Geri
Üst