C# Generic Queue<T> Kullanımı
Queue<T> yapısı C#'ın generic collection yapılarından biridir. T ile belirttiğimiz tipte elemanlar tutar ve FIFO (ilk giren ilk çıkar) mantığıyla elemanları dışarı çıkartır.
Bu yapıya örnek olarak bankaya gittiğimizde girdiğimiz sırayı verebiliriz. İlk bankaya gidene ilk sıra gelir gibi.
Enqueue : Queue yapımıza yeni bir eleman eklemek için kullanılır.
Dequeue : Queue yapımızdan sıradaki ilk elemanı alıp bu elemanı siler.
Peek : Queue'deki nesneyi silmeden son elemanı döndürür.
Şimdi örnek bir Queue yapısı geliştirelim:
Çıktı:
Örnek Proje: GenericQueueExample.rar
Bu yapıya örnek olarak bankaya gittiğimizde girdiğimiz sırayı verebiliriz. İlk bankaya gidene ilk sıra gelir gibi.
Enqueue : Queue yapımıza yeni bir eleman eklemek için kullanılır.
Dequeue : Queue yapımızdan sıradaki ilk elemanı alıp bu elemanı siler.
Peek : Queue'deki nesneyi silmeden son elemanı döndürür.
Şimdi örnek bir Queue yapısı geliştirelim:
public class Person { public string Name { get; set; } public string Surname { get; set; } public int Age { get; set; } public override string ToString() { return "Fullname: " + Name + " " + Surname + " Age: " + Age; } } class Program { static void Main(string[] args) { Queue<Person> personQueue = new Queue<Person>(); //Queue yapisina Person nesnelerini ekliyoruz personQueue.Enqueue(new Person() { Name = "Ahmet", Surname = "Yilmaz", Age = 21 }); personQueue.Enqueue(new Person() { Name = "Safak", Surname = "Unel", Age = 26 }); personQueue.Enqueue(new Person() { Name = "Salih", Surname = "Sayar", Age = 42 }); //Peeked: son eleman silmeden queue'deki son elemana bakiliyor //Dequeue: ilk eleman cekilip siliniyor Console.WriteLine("Peeked : {0}", personQueue.Peek()); Console.WriteLine("Dequeue : {0}", personQueue.Dequeue()); Console.WriteLine("nPeeked : {0}", personQueue.Peek()); Console.WriteLine("Dequeue : {0}", personQueue.Dequeue()); Console.WriteLine("nPeeked : {0}", personQueue.Peek()); Console.WriteLine("Dequeue : {0}", personQueue.Dequeue()); try { // eger stack'imiz bosalttiktan sora Peek veya Pop // metodlarimizi cagirirsak hata aliriz Console.WriteLine("nPeeked : {0}", personQueue.Peek()); Console.WriteLine("Dequeue: {0}", personQueue.Dequeue()); } catch (Exception e) { Console.WriteLine("nError: {0}", e.Message); } Console.ReadLine(); } }
Çıktı:
Örnek Proje: GenericQueueExample.rar
0 yorum :
Yorum Gönder