Ö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 yığın 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ı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
Algoritmalara Giriş Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein