C# Stack - Queue
Stack genellikle aynı verilerin tutulduğu ve veriler LIFO(Last In First Out : Son Giren İlk Çıkar) yöntemiyle sıralanan bir yapıdır.
Şarjör örneğini verebiliriz şarjörümüze koyduğumuz son merminin ilk çıkması gibidir.
Queue verileri FIFO(First In First Out : İlk Giren İlk Çıkar) yöntemine göre sıralanır.
Örnek olarak da vezne sırası diyebiliriz ilk gelen kişinin ilk işleme alıp çıkması gibidir.
Stack
Stack koleksiyonumuzun en çok kullanılan metotları.
.Push("veri"); //ekleme işlemi yapar.
.Pop( ); //çıkarma işlemi yapar.
.Peek( ); //çıkacak olan veriyi(elemanı) gösterir.
Örnek olarak bir kutumuz olsun onun içine kitaplarımızı yerleştiryoruz ve alıyoruz. Kutumuz yığınımız(stack) ve elamanlarıda kitaplar.
Stack kutu= new Stack();
// .PUSH() Stack' mize ekleme işlemi yapar.
kutu.Push("OD");
kutu.Push("C# Uygulamalar");
kutu.Push("Veri Madenciliği");
kutu.Push("Bol Örnekli JQuery");
// Kutumuza kitaplarımızı eklemiş olduk
// Kutumuzdan bir kitap almak istediğimiz zaman
// üst üste bir yığın oluşturduğumuz için ilk kitabı çıkarmak zorundayız
// Kutumuzdan şimdi bir kitap alalım.
// .POP() Stack 'mizden çıkarma işlemi yapar
Console.WriteLine(kutu.Pop());
//Ekrana "Bol Örnekli JQuery" Yazacaktır.
// Tekrar POP dersek bu sefer ekrana "Veri Madenciliği" yazacaktır.
// .PEEK() Stack 'mizdeki çıkıcak olan elemanını göstericektir.
// Burada dikkat etmemiz nokta. POP yaptığımızda artık kutumuzda
// öyle bir eleman mevcut değildir. PEEK işlemi işlem sırasındaki elemana
// bakmamızı sağlamaktadır ve hala stack 'mizde mevcuttur.
Console. WriteLine(kutu.Peek());//Ekrana "Veri Madenciliği " Yazıcaktır.
Queue
Queue koleksiyonumuzun en çok kullanılan metotları
.Enqueue("veri"); //ekleme işlemi yapar.
.Dequeue( ); //çıkarma işlemi yapar.
.Peek( ); //çıkacak olan veriyi(elemanı) gösterir.
Örnek olarak bir banka kuyruğumuz olsun gelen kişileri kuyruğa alıp işleme sokalım.
Queue banka= new Queue ();
// .ENQUEUE() Queue' mize ekleme işlemi yapar.
banka.Enqueue("Kerem ÖZER");
banka.Enqueue("Ali RODOPLU");
banka.Enqueue("Okan BİLİR");
banka.Enqueue("Sinan ERTAN");
banka.Enqueue("Furkan BİÇER");
banka.Enqueue("Emirhan DAĞLIOĞLU");
// Banka kuyruğumuzu oluşturmuş olduk
// Standart kuyruk işlemi yapıcağız ilk gelen kişi ilk hizmete alıcağız.
// Kuyruktaki ilk Kişiyi Hizmete alalım.
// .DEQUEUE() Queu 'mizden çıkarma işlemi yapar
Console.WriteLine("İşleme alınan kişi "+banka.Dequeue());
//Ekrana "Kerem ÖZER" Yazacaktır.
// Bu işlemi yaptığımzda artık "Kerem ÖZER" kuyrukta bulunmuyor
// Kuyrukdan çıkarmış olduk
// .PEEK() Queue 'mizdeki çıkıcak olan kişiyi göstericektir.
// Burada dikkat etmemiz nokta. DEQUEUE yaptığımızda artık kuyrukta
// öyle bir kişi mevcut olmayacaktır. PEEK işlemi işlem sırasındaki kişiyi
// bakmamızı sağlayacaktır.
Console. WriteLine("Sıradaki kişi "+banka.Peek());
//Ekrana "Ali RODOPLU" Yazıcaktır.