İlginizi Çekebilir
veri yapıları mshowto
  1. Ana Sayfa
  2. Algoritmalar
  3. Veri Yapıları 4 Yığın (Stack)

Veri Yapıları 4 Yığın (Stack)

featured

Önceki bölümlerde bağlı listelere ve dizi veri yapılarına değinmiştik. Bu bölümde ise özellikle bellek organizasyonunda sıklıkla karşımıza çıkan ayrıca Greedy yaklaşımlarda ve ağaç traversal işlemlerinde de karşımıza çıkabilecek olan bilgisayar mimarisinde hatrı sayılır yeri bulunan Yığın (Stack) veri yapısı üzerinde konuşuyor olacağız.

STACK denilince aklımıza ilk gelmesi gereken yaklaşım LIFO olmalıdır. Last in First out yaklaşımı bilginin geliş sırasına göre en son gelen elemanın ilk erişilen eleman olduğu liste yapısına stack denilmektedir. Türkçe kaynaklarda veya yığıt olarak da görülebilir. Verilere erişim yalnızca bir uçtan gerçekleşmektedir. Bunu masanın üzerine üst üste konulmuş çeşitli eşyalar gibi düşünebiliriz. Yani masanın üzerine yığılmış eşyalar olsun bunlara erişirken en üste koyduğumuz yani en son koyduğumuz eşyaya ilk ulaşırız. Bu şekilde eşyalar üzerinde ilk koyduğumuz eşyaya da en son erişmiş oluruz. İşte bu prensibe LIFO denilmektedir.

Resim-1

Yığın veri yapısında aradaki elemanlara doğrudan erişmem mümkün değildir. Hep en üsttekinden alttakine doğru bir erişim söz konusudur.  Elemanlar tek bir noktadan eklenip çıkartılır buna da yığının tepesi denilmektedir. İlk elemanın eklendiği alt noktaya ise yığın tabanı denilmektedir.

Yığın veri yapısında kullanılan fonksiyon ve işlevler aşağıdaki gibidir.

Push( ) : Yığına eleman eklemek için kullanılır.

Pop( ) : Yığından eleman çıkarmak için kullanılır.

Peek( ) : Yığının tepe elemanını döndürür.

Empty( ) : Yığını boş/dolu kontrol eder.

Size( ) : Yığının eleman sayısını döndürür.

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

Algoritmalara Giriş Thomas H. CormenCharles E. LeisersonRonald L. RivestClifford Stein

Yorum Yap

Yazar Hakkında

Bilgisayar Mühendisliği Doktora programında öğrenciliğim devam etmektedir. Bir Vakıf üniversitesinde 2016 yılı itibariyle Bilgisayar Mühendisi 2020 yılı itibariyle ise Ofis Yöneticisi mühendis olarak çalışmaktayım.  Başlıca uzmanlık alanlarım arasında Asp.Net Web Forms, Asp.Net MVC, .Net Core, C# ve SQL Server gelmektedir. Bunların yanı sıra iş hayatımda sistem ve siber güvenlik konularında da çalışmalarım devam etmektedir. Çeşitli AB destek projelerinde yazılım sorumlusu olarak görev yapıyor ve çalışmalarımı Secure Design Pattern, Yazılım Güvenliği, Siber Güvenlik, Bilgi Güvenliği konularında sürdürüyorum. Asp.net ile Proje Geliştirme ve Bilgisayar Mühendisliğine Giriş isimli kitapların yazarıyım.

Yorum Yap