Merhaba arkadaşlar. Bugün yazımızda Java ile stack yapıları nasıl oluşturulur konusunu ele alacağız. İlk olarak, stack yani yığıt nedir tanımlamakla başlayalım.
Yığıt(stack), nesnelerin LIFO(Last In First Out - son giren ilk çıkar) yapısı ile bir arada tutulmasını sağlayan bir veri yapısıdır. Yani, elimizdeki diziye,listeye veya yapıya hangi elemanı son eklediysek, çıkarma işlemi yaparken ilk olarak onu çıkarmamız gerekiyor. Ortalardan bir yerden elemana ulaşmak için, son eklediğimiz nesneden başlayıp, istediğimiz nesneye gelene kadar tüm elemanları çıkarmak zorundayız.
Şimdi, Java'da dizileri kullarak stack yapısını nasıl oluşturacağımızı görelim. Sonra kodu ayrıntılı bir şekilde inceleyeceğiz
Kodu çalıştırırsak, çıktısı şöyle olacaktır.
Gördüğünüz gibi, en son eklediğimiz eleman 4'dü. Çıkarma işlemi yaptığımız zaman, bize 4 elemanını verdi.
Kod içerisinde, bir yığıtın sahip olması gereken metodları yazdık. İlk olarak, kurucu metodumuz içerisinde gerekli tanımlamaları yaptık.Şimdi,sıra ile metodları inceleyelim.
push: Bu metot, yığıtımıza eleman ekler. Yığıtın dolu olup olmadığını kontrol eder, eğer dolu değilse elemanı ekler
pop: Bu metot, yığıtın en üstündeki elemanı çıkarır ve geri döndürür. Biz kod içerisinde çıkarma işlemi yaparken, en üstü gösteren değişkeni bir azalttık ve artık yığıtta en üst eleman olarak, o andaki üst elemanın kendisinin bir altındaki eleman görüneceği için, silme işlemini bu şekilde yapmış olduk.
top: Yığıtın en üstünde bulunan nesneyi verir. Nesneye kesinlikle dokunmaz.
isEmpty: Yığıtın boş olup olmadığını kontrol eder. Eğer ust değişkeni -1 ise, yığıta eleman eklenmemiş yada elemanların hepsi silinmiş demektir.
isFull: Yığıtın dolu olup olmadığını kontrol eder. Eğer ust değişkeni, dizinin boyutuna ulaşmış ise, yığıt dolu demektir.
Tabi ki, sadece int tipinde yığıtlar oluşturulmuyor. Aklınıza gelebilecek her nesne tipinde Yığıt oluşturabiliriz. Yığıtların kullanım alanları geniştir. Örneğin, tarayıcıda gezinirken bir önceki sayfaya gitmek için yığıt yapısı kullanılır.
Stack yapısını elle oluşturmak zorunda değiliz.java.util.Stack içerisinde bulunan Stack sınıfını da kullanabiliriz. Koda bakalım
Tabi ki bu sınıf biraz daha gelişmiş özelliklere sahip. Ancak, mantık olarak aynıdır. Last In First Out.
Bu sınıf ile ilgili biraz daha bilgi almak isterseniz, şu sayfaya bakabilirsiniz
Sorularınız veya yorumlarınız varsa, lütfen belirtin. Şimdiden teşekkür ederim. Başka yazılarda buluşmak dileği ile..
Yığıt(stack), nesnelerin LIFO(Last In First Out - son giren ilk çıkar) yapısı ile bir arada tutulmasını sağlayan bir veri yapısıdır. Yani, elimizdeki diziye,listeye veya yapıya hangi elemanı son eklediysek, çıkarma işlemi yaparken ilk olarak onu çıkarmamız gerekiyor. Ortalardan bir yerden elemana ulaşmak için, son eklediğimiz nesneden başlayıp, istediğimiz nesneye gelene kadar tüm elemanları çıkarmak zorundayız.
Şimdi, Java'da dizileri kullarak stack yapısını nasıl oluşturacağımızı görelim. Sonra kodu ayrıntılı bir şekilde inceleyeceğiz
Kodu çalıştırırsak, çıktısı şöyle olacaktır.
Gördüğünüz gibi, en son eklediğimiz eleman 4'dü. Çıkarma işlemi yaptığımız zaman, bize 4 elemanını verdi.
Kod içerisinde, bir yığıtın sahip olması gereken metodları yazdık. İlk olarak, kurucu metodumuz içerisinde gerekli tanımlamaları yaptık.Şimdi,sıra ile metodları inceleyelim.
push: Bu metot, yığıtımıza eleman ekler. Yığıtın dolu olup olmadığını kontrol eder, eğer dolu değilse elemanı ekler
pop: Bu metot, yığıtın en üstündeki elemanı çıkarır ve geri döndürür. Biz kod içerisinde çıkarma işlemi yaparken, en üstü gösteren değişkeni bir azalttık ve artık yığıtta en üst eleman olarak, o andaki üst elemanın kendisinin bir altındaki eleman görüneceği için, silme işlemini bu şekilde yapmış olduk.
top: Yığıtın en üstünde bulunan nesneyi verir. Nesneye kesinlikle dokunmaz.
isEmpty: Yığıtın boş olup olmadığını kontrol eder. Eğer ust değişkeni -1 ise, yığıta eleman eklenmemiş yada elemanların hepsi silinmiş demektir.
isFull: Yığıtın dolu olup olmadığını kontrol eder. Eğer ust değişkeni, dizinin boyutuna ulaşmış ise, yığıt dolu demektir.
Tabi ki, sadece int tipinde yığıtlar oluşturulmuyor. Aklınıza gelebilecek her nesne tipinde Yığıt oluşturabiliriz. Yığıtların kullanım alanları geniştir. Örneğin, tarayıcıda gezinirken bir önceki sayfaya gitmek için yığıt yapısı kullanılır.
Stack yapısını elle oluşturmak zorunda değiliz.java.util.Stack içerisinde bulunan Stack sınıfını da kullanabiliriz. Koda bakalım
Tabi ki bu sınıf biraz daha gelişmiş özelliklere sahip. Ancak, mantık olarak aynıdır. Last In First Out.
Bu sınıf ile ilgili biraz daha bilgi almak isterseniz, şu sayfaya bakabilirsiniz
Sorularınız veya yorumlarınız varsa, lütfen belirtin. Şimdiden teşekkür ederim. Başka yazılarda buluşmak dileği ile..
Yorumlar
Yorum Gönder