C # 'da Stack nedir?
Yığın, son giren ilk çıkar (LIFO) konseptini temsil eden özel bir kasa koleksiyonudur. LIFO'yu ilk önce anlamak için bir örnek alalım. Her kitabın üst üste konduğu bir kitap yığını hayal edin.
Kitaplar söz konusu olduğunda son giren ilk çıkar kavramı, kitap yığınından yalnızca en çok kitabın çıkarılabileceği anlamına gelir. Aralarından bir kitabı çıkarmak mümkün değildir, çünkü bu durumda yığının ayarını bozacaktır.
Dolayısıyla C # 'da yığın da aynı şekilde çalışır. Öğeler, üst üste yığına eklenir. Yığına bir öğe ekleme işlemine itme işlemi denir. Yığından bir öğeyi kaldırmak için yığının en üstteki öğesini de kaldırabilirsiniz. Bu işlem pop olarak bilinir.
Stack koleksiyonu için mevcut olan işlemlere daha detaylı bakalım.
Yığının beyanı
Yığın Veri türü yardımıyla bir yığın oluşturulur. "Yeni" anahtar sözcüğü bir Yığın nesnesini yaratmak için kullanılır. Nesne daha sonra değişken st'e atanır.
Stack st = new Stack()
Yığına eleman ekleme
İtme yöntemi, yığına bir öğe eklemek için kullanılır. İfadenin genel sözdizimi aşağıda verilmiştir.
Stack.push(element)
Yığından öğeleri çıkarma
Pop yöntemi, yığından bir öğeyi kaldırmak için kullanılır. Pop işlemi yığının en üstteki öğesini döndürür. İfadenin genel sözdizimi aşağıda verilmiştir.
Stack.pop()
Miktar
Bu özellik, Yığın içindeki öğe sayısını elde etmek için kullanılır. Bu ifadenin genel sözdizimi aşağıdadır.
Stack.Count
İçerir
Bu yöntem, Yığın içinde bir öğenin olup olmadığını görmek için kullanılır. Bu ifadenin genel sözdizimi aşağıdadır. Öğe varsa ifade true, aksi takdirde false değerini döndürür.
Stack.Contains(element)
Şimdi bunun kod seviyesinde çalıştığını görelim. Aşağıda belirtilen kodun tamamı 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 kodu yazacağız.
örnek 1
Bu örnekte göreceğiz
- Bir yığın nasıl oluşturulur.
- Yığının öğeleri nasıl görüntülenir ve Say ve Kapsama yöntemleri kullanılır.
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{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("The number of elements in the stack " +st.Count);Console.WriteLine("Does the stack contain the elements 3 "+st.Contains(3));Console.ReadKey();}}}
Kod Açıklaması: -
- İlk adım, Yığını bildirmek için kullanılır. Burada, yığımızın elemanlarını tutmak için "st" yi bir değişken olarak tanımlıyoruz.
- Ardından, yığınımıza 3 öğe ekliyoruz. Her öğe, Push yöntemiyle eklenir.
- Artık yığın öğelerine dizi listesi gibi dizin konumu aracılığıyla erişilemediğinden, yığının öğelerini görüntülemek için farklı bir yaklaşım kullanmamız gerekir. Nesne (obj), yığının her bir öğesini tutmak için bildirilen geçici bir değişkendir. Daha sonra foreach ifadesini yığının her bir öğesinin üzerinden geçmek için kullanırız. Her yığın öğesi için değer, obj değişkenine atanır. Daha sonra değeri konsola görüntülemek için Console.Writeline komutunu kullanıyoruz.
- Yığındaki öğe sayısını elde etmek için Count özelliğini ( st.count ) kullanıyoruz. Bu özellik bir sayı döndürecektir. Daha sonra bu değeri konsola gösteriyoruz.
- Daha sonra, 3 değerinin yığınımızda mevcut olup olmadığını görmek için İçerir yöntemini kullanırız. Bu, doğru veya yanlış bir değer döndürür. Daha sonra bu dönüş değerini konsola görüntüleriz.
Yukarıdaki kod doğru girilirse ve program çalıştırılırsa aşağıdaki çıktı görüntülenir.
Çıktı:
Çıktıdan, yığının elemanlarının görüntülendiğini görebiliriz. Ayrıca, 3 değerinin yığın üzerinde tanımlandığını belirtmek için True değeri görüntülenir.
Not : Yığına itilen son elemanın ilk önce görüntülendiğini fark ettiniz. Bu, yığının en üstteki öğesidir. Yığın elemanlarının sayısı da çıktıda gösterilir.
Örnek 2
Şimdi "kaldır" işlevine bakalım. En üstteki öğeyi yığından çıkarmak için gereken kodu göreceğiz.
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{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.ReadKey();}}}
Kod Açıklaması: -
- Burada, yığından bir öğeyi kaldırmak için kullanılan pop yöntemini yayınlıyoruz.
Yukarıdaki kod doğru girilirse ve program çalıştırılırsa, aşağıdaki çıktı görüntülenecektir.
Çıktı:
Element 3'ün yığından kaldırıldığını görebiliriz.
Özet
- Yığın, son giren ilk çıkar konseptine dayanır. Yığına bir eleman ekleme işlemine itme işlemi denir. Bir öğeyi yığından kaldırma işlemine pop işlemi denir.