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
| Özellik | Stack (Yığın) | Queue (Kuyruk) | |||
|---|---|---|---|---|---|
| Çalışma Prensibi | LIFO (Son Giren İlk Çıkar) | FIFO (İlk Giren İlk Çıkar) | |||
| Erişim Noktası | Sadece en üst (Top). | İki uç (Ön ve Arka). | Kritik Hata | Stack 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.