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

622 soru

648 cevap

194 yorum

127 üye

Hoş geldiniz!!

Ülkemizde yazılım sektöründe çalışan biriyseniz, çok fazla sorunla karşılaşıp sizde ani tepkiler veriyorsanız :), bazen günlerinizi harcayıp sonuca ulaşmaya çalışıyorsanız, yalnız değilsiniz. Tecrübelerimizi paylaşmak, tecrübelerinizden faydalanmak istediğimiz için buradayız.
Sizi de bekliyoruz.
0 oy
275
Veri yapılarındaki yığın (stack) tipi ne işe yarar nerelerde kullanılır?
Genel Kavramlar kategorisinde (2.9k puan) sordu

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. 

(2.9k puan) cevapladı

İlgili sorular

0 oy
0 cevap 13
13 28 Temmuz 2017 Genel Kavramlar kategorisinde tolga (1.6k puan) sordu
0 oy
1 cevap 38
0 oy
0 cevap 19
19 10 Nisan 2017 Genel Kavramlar kategorisinde tolga (1.6k puan) sordu
...