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.