4.4 Yığınlar (Stacks)
C++ dilinde yığın (stack), verileri LIFO (Last In, First Out - Son Giren İlk Çıkar) mantığıyla saklayan bir veri yapısıdır. Yığın yapısı, verilerin son giren elemanın ilk olarak çıkarıldığı bir düzen sağlar. Yığınlar genellikle geçici veri saklama, geri alma işlemleri (undo), fonksiyon çağrıları ve diğer birçok durumda kullanılır.
Yığınların Temel Özellikleri
LIFO Yapısı: Yığınlarda son eklenen eleman, ilk çıkarılan elemandır. Bu yapı, yığınların temel işleyiş prensibidir.
İki Temel İşlem: Yığınlar genellikle iki temel işlemle çalışır:
Push: Yığına bir eleman eklemek.
Pop: Yığından bir eleman çıkarmak.
En Üstteki Elemanı Görme: Yığındaki en üstteki elemanı görmek için kullanılan bir işlem vardır, bu işleme Topdenir. Ancak bu işlem yığından herhangi bir elemanı çıkarmaz.
Yığınların Kullanımı
C++'ta yığınlar, #include <stack>
ifadesi ile kullanılmaya başlanır. Aşağıda yığınların temel kullanımını gösteren örnekler bulunmaktadır.
Yığın Oluşturma ve Eleman Ekleme
#include <iostream>
#include <stack>
int main() {
// Yığın oluşturma
std::stack<int> yigin;
// Eleman ekleme
yigin.push(10);
yigin.push(20);
yigin.push(30);
// En üstteki elemanı yazdırma
std::cout << "Yığındaki en üstteki eleman: " << yigin.top() << std::endl;
return 0;
}
Eleman Çıkarma
Yığından eleman çıkarmak için pop()
fonksiyonu kullanılır.
#include <iostream>
#include <stack>
int main() {
// Yığın oluşturma
std::stack<int> yigin;
yigin.push(10);
yigin.push(20);
yigin.push(30);
// Yığından eleman çıkarma
std::cout << "Yığından çıkarılan eleman: " << yigin.top() << std::endl;
yigin.pop(); // En üstteki elemanı çıkar
std::cout << "Yeni en üstteki eleman: " << yigin.top() << std::endl;
return 0;
}
Yığın Boş Mu Kontrolü
Yığının boş olup olmadığını kontrol etmek için empty()
fonksiyonu kullanılabilir.
#include <iostream>
#include <stack>
int main() {
// Yığın oluşturma
std::stack<int> yigin;
// Yığının boş olup olmadığını kontrol etme
if (yigin.empty()) {
std::cout << "Yığın boştur." << std::endl;
} else {
std::cout << "Yığın doludur." << std::endl;
}
return 0;
}
Sonuç
C++ yığınları, verileri LIFO düzenine göre saklamanın etkili bir yolunu sunar. Yığınlar, eleman ekleme, çıkarma ve en üstteki elemanı görme gibi basit ama etkili işlemlerle çalışır.
Last updated
Was this helpful?