search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
3.8k gösterim
Veri yapılarındaki yığın (stack) tipi ne işe yarar nerelerde kullanılır?
Genel Kavramlar kategorisinde 6.2k puan

1 cevap

0 oy

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. 

6.2k puan
Ya da word tarzı bir uygulama yazan bir developer olduğumuzu düşünelim. Her yazdığımız harfi/işlemi stack içine ekleyip sonra da ctrl+z yaptığımız zaman stack üzerinden en son yapılan işlemi geri alabiliriz.Yukarıdakine benzer olarak geri alırken aldığımız aksiyonu da ileri yığınına atarak ctrl+y yaptığımız zaman ileri doğru da işlemleri sarabiliriz.

İlgili sorular

1 oy
1 cevap 827 gösterim
827 gösterim
oracle'da nextval ve interval nedir? Nasıl kullanılır?
23 Temmuz 2018 Veri Tabanı kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
0 cevap 279 gösterim
279 gösterim 14 Ocak 2021 Genel Kavramlar kategorisinde Hilalcli 215 puan sordu
0 oy
1 cevap 181 gösterim
181 gösterim
Bir proje altında bazı XML dosyaları var. Ancak ne işe yarar bilgisi olan 1-spring-security.xml 2-classpathApplicationContext.xml 3-applicationContext.xml 4-log4j.xml 5-persistence.xml 6-rebel.xml
15 Haziran 2020 Genel Kavramlar kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 114 gösterim
114 gösterim
Apache Spark nedir tam olarak ne gibi bir soruna çözüm sağlıyor? Makelerde denk geldim de bilen varsa .. Apache kafka, apache tomcat vs. bunlarla bir alakası var mı?
30 Mayıs 2020 Genel Kavramlar kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 437 gösterim
437 gösterim
Pgp kavramı tam olarak ne oluyor ve hangi işte kullanabilirim?
25 Ekim 2018 Genel Kavramlar kategorisinde kenan 6.2k puan sordu