Stack, Last In First Out (LIFO) yani son giren ilk çıkar mantığıyla çalışan basit bir veri yapısıdır. Stack veri yapısını gerçekleştirmek için genellikle dizi veya bağlı liste (Linked List) kullanılır. Fakat konunun kolay anlaşılması için örnekleri dizi ile anlatmaya çalışacağım.
Stack Veri Yapısında Kullanılan Metotlar
Push(string veri): Push metotu stack’a veri eklemek için kullanılır. Eklenecek veri parametre olarak gönderilir.
Pop(): Stack’den veri çıkarmak için kullanılır. Her zaman sadece son eklenen veri çıkartılabilir.
Stack veri yapısının çalışma mantığı şu şekildedir. Stack’de mutlaka son eklenen verinin indis numarası (genellikle top diye adlandırılır) tutulur. Veri eklendikçe top değeri birer artırılır. Veri çıkarıldıkça ise birer azaltılır. Bu nedenle her zaman top değeriyle işlem yapılmak zorundadır.
Stack sınıfı
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
public class Stack { String dizi[]; int top=0; public Stack(int k){ dizi=new String[k]; } public void push(String veri){ dizi[top]=veri; top++; } public String pop(){ if(top>0) return dizi[--top]; else return "Stack Boş"; } } |
Yukarıda ki örnekte Java ile yazılmış basit bir Stack sınıfı görülmektedir. Bu sınıfı kullanabilmek için StackTest sınıfı kullanabilirsiniz.
StackTest Sınıfı
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class StackTest { public static void main(String[] args) { Stack stack =new Stack(10); stack.push("İzmir"); stack.push("Ankara"); stack.push("İstanbul"); stack.push("Antalya"); System.out.println(stack.pop()); } } |
Yukarıdaki kodlar çalıştırıldığında stack’e sırasıyla İzmir-Ankara-İstanbul-Antalya verileri eklenir. Pop metodu çağrıldığında ise en son eklenen Antalya stack’den çıkarılarak ekranda gösterilir.