C# Stack (Yığın) nedir?
Yığın, son giren ilk çıkar (LIFO) konseptini temsil eden özel bir koleksiyondur. İlk önce LIFO’yu anlamak için bir örnek alalım. Her kitabın birbirinin üzerinde tuttuğu bir kitap yığını hayal edin.
Kitaplarda son giren ilk çıkar, kitap yığından yalnızca en üstteki kitabın kaldırılabileceği anlamına gelir. Bir kitabı aralarından kaldırmak mümkün değildir, çünkü o zaman yığının ayarını bozabilir.
Dolayısıyla C# ‘da, yığın aynı şekilde çalışır. Öğeler üst üste yığına eklenir. Yığına bir eleman ekleme işlemine itme(push) işlemi denir. Bir öğeyi yığından kaldırmak için, yığının en üstündeki öğeyi de kaldırabilirsiniz. Bu işlem pop olarak bilinir.
Yığın koleksiyonu için mevcut işlemlere daha ayrıntılı bir şekilde bakalım.
Yığın Beyanı
Yığın Veri türü yardımı ile bir yığın oluşturulur. “New” anahtar sözcüğü bir Stack nesnesi oluşturmak için kullanılır. Nesne daha sonra st değişkenine atanır.
1 2 3 | Stack st = new Stack() |
Yığına eleman ekleme
Push yöntemi yığına bir eleman eklemek için kullanılır. İfadenin genel sözdizimi aşağıda verilmiştir.
1 2 3 | Stack.push(element) |
Öğeleri yığından çıkarma
Pop yöntemi, bir öğeyi yığından kaldırmak için kullanılır. Pop işlemi yığının en üst elemanını döndürür. İfadenin genel sözdizimi aşağıda verilmiştir.
1 2 3 | Stack.pop() |
Count
Bu özellik, Yığın içindeki öğelerin sayısını almak için kullanılır. Aşağıda bu ifadenin genel sözdizimi bulunmaktadır.
1 2 3 | Stack.Count |
Contains
Bu yöntem, Yığın içinde bir eleman olup olmadığını görmek için kullanılır. Aşağıda bu ifadenin genel sözdizimi bulunmaktadır. Öğe varsa, deyim true, aksi takdirde false değerini döndürür.
1 2 3 | Stack.Contains(element) |
Şimdi bunun kod düzeyinde çalıştığını görelim. Aşağıda belirtilen kodların tümü Konsol uygulamamıza yazılacaktır. Kod Program.cs dosyamıza yazılacaktır.
Aşağıdaki programda, yukarıda belirtilen yöntemleri nasıl kullanabileceğimizi görmek için kod yazacağız.
C# Stack Örnekleri
Örnek 1
Bu örnekte göreceğiz
- Bir yığın nasıl oluşturulur?
- Yığın elemanlarının nasıl gösterileceği ve Count ve Contains yöntemlerinin kullanılması olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push(1); st.Push(2); st.Push(3); foreach (Object obj in st) { Console.WriteLine(obj); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Stack içindeki element sayısı " + st.Count); Console.WriteLine("Stack 3 sayısını içeriyor mu? " + st.Contains(3)); Console.ReadLine(); } } |
Örnek 2
Şimdi “Pop” işlevine bakalım. En üstteki öğeyi yığından kaldırmak için gereken kodu göreceğiz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push(1); st.Push(2); st.Push(3); st.Pop(); foreach (Object obj in st) { Console.WriteLine(obj); } Console.ReadLine(); } } |
Bir Stack, ilk giren ilk çıkar konseptine dayanır. Yığına bir eleman ekleme işlemine itme işlemi denir. Bir elemanı yığına çıkarma işlemine pop işlemi denir.
Bir yanlış yazım var sanırım ilk giren ilk çıkmaz yığında son giren ilk çıkar
Sağol ard arda örnekler yapınca dikkatten kaçmış. Son yerine ilk yazmışım.