Yığın(stack) veri yapıları dersinde gösterilen ilk ve en basit veri yapılarındandır. Muhtemelen kendiniz yazmaya bile ihtiyaç duymazsınız keza standard olarak java/.net veye bir çok dilde zaten sunulmaktadır.
Basit bir tanım yapmak gerekirse elinizde özellikle içine birşeyler koyacağınız ve daha sonrasında koyduğunuz şeyleri geri alabileceğiniz bir yapı oluyor. Asıl olarak önemli olan kısmı ekleme ve geri alma sırası. Ekleme işlemi genel olarak push metodu olarak gerçekleştirilir. Geri alma ise pop ismiyle çağrılır.
Asıl özelliği en son eklediğiniz veriyi ilk olarak geri almanıza yarar. Mesela internet tarayıcınızda sayfalarda geziyorsunuz. Bir yerde aa dediniz bir önceki sayfaya dönmem lazım. Ne yapıyoruz? Geri butonuna basıyoruz. Peki arkada girilen sayfaları hangi veri yapısıyla tutabilliriz? En son girilen sayfaya gitmemiz gerekmiyor mu? Tam olarak stack kullanılacak bir örnek. Basit yalancı bir kod yazarsak
function sayfaAc(yeniSayfa)
geriStack.push(gucelSayfa)
yonlendir(yeniSayfa)
function geri()
geriSayfa = geriStack.pop
ileriStack.push(guncelSayfa)
yonlendir(geriSayfa)
function ileri()
ileriSayfa = ileriStack.pop
geristack.push(guncelSayfa)
yonlendir(ileriSayfa)
Burada bir sayfa aç dediğimiz zaman şu anki güncel sayfamızı artık geride bırakmamız gerekecek, o yüzden geriStack(geri butonu yığını) içine sayfayı koyuyoruz ki geri gelebilelim. Keza geri butonu için yazılan fonksiyonda görüyoruz ki bu stack içinden sayfayı alabiliyoruz. Geri butonuna basında aslında içinde bulunduğumuz sayfayı başka bir yığın yardımıyla kenara alıyoruz. Bunu da ileri butonu için kullanabiliriz.
Burada ileri ve geri fonksiyonları çağrıldıkça sayfa sürekli önceki ve sonraki arasında hareket edecek. Bunu da iki stack yardımıyla halletmiş oluyoruz.
Uzun lafın kısası en son iş yaptığımız sayfa olabilir, component olabilir, herhangi birşey olabilir geri bulmak istediğimizde kullanabileceğimiz veri yapısı yığın(stack) oluyor. Tarih güzel bir örnek.