Yığın (Stack)

Herkese merhaba bu yazıda elimden geldiğince stackları anlatmaya çalışacağım.

Stacklar bir ADT (Abstract Data Type , Soyut veri tipleri) den bir tanesidir. İlk giren son çıkar (Last in first out ) mantığıyla çalışırlar. Buna örnek vermek gerekir ise , bulaşık makinesinden çıkarttığımız tabakları raflara dizerken en alttaki tabak , ilk koyduğumuz tabaktır ve bize tabak lazım olduğundan en üstten alırız.

Stacklar diziler veya linkedListler üzerine kurulabilir.

Stacklarda çıkarma ve ekleme işlemi stack ın en tepesinden yapılır.

Stacklarin genellikle temel olarak 3 yada 4 tane metodu vardır. Bunlar

  • Push : Stack içersine bilgi koyar ( en tepeye )
  • Pop   :  Stack ın en tepesindeki bilgiyi siler ve geri döndürür
  • Peek  : Stack ın en tepesindeki bilgiyi okur

ilk örneğimizi linkedlist ler üzerinden yapalım

Node Sınıfımız bu şekildedir zaten bir önceki yazıda linkedlist leri anlatırken yine böyle yazmıştık.

LinkedList  i biliyorsanız yada bir önceki yazıyı okuduysanız buradaki bazı metotların aynı olduğunu göreceksiniz.

Burada yazdığımız push() metotdu aslında linkedlist te yazdığımız addFirst() metotduyla çok benzer. Aynı şekilde pop() metotduda removeFirst() metoduyla çok benzerdir. Aslında biz linkedlist ile aynı paketin içinde farklı bir sınıfta bu yazdığımız stack sınıfını yazsaydık direk bu metotları çekip kullanabilirdik. Burada bilmemiz gereken mantık İlk giren son çıkar (yada son giren ilk çıkar ) mantığıdır.

Bu paketin test sınıfı da şu şekildedir


Şimdi linkedlist ile değilde dizi üzerine yapılmış bir örnekle devam edelim

Bu sınıfında test sınıfı alttaki gibidir

 

Bunlar nerelerde kullanılıyor diye sorabilirsiniz en basitinden browser daki geri tuşunda mesela 🙂