Merhaba Değerli Arkadaşlar sabahın bu erken saatlerinde bir zevk haline getirdiğim denize karşı pencerenin karşısında çay yudumlarken bir başka zevkim olan yazma bir şeyler anlatma hissi daha tatlı gelince hemen bilgisayarımı aldım ve çayımıda yudumlarken yazmaya koyuldum.

Bu yazımda sizlere Dün Anlattığım veri yapılarının diğer bir önemli konusu olan Queue (Kuyruk) veri yapısını elimden geldiği kadarıyla en önemli arkadaşım olan sıcak çayımı yudumlarken anlatacağım ama önce dün verdiğim gibi bugünde veri yapılarının en önemli yapısı derken acaba veri yapıları ne demektir diyerek başlayalım yazmaya…

Veri yapıları,Verilerin bellekte tutulma biçimleriyle beraber bellekten alınırken işlenme biçimleri,yöntemleri yada yordamlarıdır diyebiliriz.Bunun içindir ki dün kü yazımda da belirttim bir Value nun Type ı en basitinden bir veri yapısıdır çünkü value nun bellekte nasıl tutulacağını kaç byte halinde saklanacağını karar verme aşamasıdır.Bu kadar kısa hatırlatmadan sonra dönelim asıl konumuza ve Queue yi anlatmaya başlayalım.

Queue (kuyruk) veri yapısı adının türkçe anlamından da anlaşılacağı üzere veriler burda kuyruk halinde tutulur.Yani kuyruğa eleman eklenirken en sonuna yani kuyruğa eleman eklenir ve bu işleme Enqueue denir ayrica kuyruktan bir eleman çekilirkende yine en son eklenen eleman ilk olarak çekilir ki bu olayada dequeue denir.Bu veri yapısının terminology sinde FIFO (Firs In First Out ) mantığı vardır yani ilk giren eleman ilk çıkar bununda tersi son giren eleman son çıkar ancak dünkü Stack da bu durumun tersi yaşanmaktaydı yani Son Giren İlk çıkar anlayışı vardı ( LIFO ).

Stack veri yapısında da olduğu gibi bu veri yapısında da sizlere amacım olan .Net Framework un Collections Kütüphanesinde var olan Queue sınıfından anlatacağım tabi Queue sınıfıyla beraber yine Stack sınıfındada olduğu gibi bir çok metot veya java tabiriyle yordam bulunmaktadır.Bunları ayrıntılı anlatmayacağım anlamadığınız metot varsa metotu yazıp üstüne sağ tıkladıktan sonra gelen menude Go To Definition sekmesine tıklayıp ordan açıklamalarını öğrenebilirsiniz burdaki amacım Tembellik yapıp anlatmaktansa sizlere ısrarla Visual Studio nun güzelliklerini ve kolaylıklarını effektif bir şekilde kullanmanızı teşvik etmektir yoksa Sıcak Çayım soğusada Tüpün üzerinde ki demliğim soğumaz :).Şimdi Queue sınıfının metotlarının neler olduğunu görelim.

  • Enqueue 
  • Dequeue 
  • Clear
  • Count
  • CopyTo
  • Clone
  • Contains
  • GetEnumerator

    Bu metotlardan bazılarını görmek üzere sizleri hemen yazdığım uygulamaya bağlayayım çünkü az sonra okulum başlayacak ve önlüğümü giyip okuluma gitmem lazım 🙂

  • using System;
    using System.Collections; // Queue sınıfı bu isim alanında bulunur.
    class Sira_Ornek1
    {

        public static void Main()
        {
            // Queue sınıfından bir nesne oluÅŸturalım:
            Queue sira = new Queue();

            // Nesnemize Enqueue metodu ile deÄŸerler girelim:
            sira.Enqueue(“mehmet”);
            sira.Enqueue(“salih”);
            sira.Enqueue(“deveci”);
            sira.Enqueue(“kuheylan”);
            // sira isimli nesnemizin eleman sayısı:
            Console.WriteLine(“\n sira nesmemizin eleman sayısı: ” + sira.Count);
            // sira isimli nesnemizin elemanları:
            Console.WriteLine(“\n sıra nesmemizin elemanları: “);
            DegerleriYaz(sira);
            //sira isimli nesmemizden bir eleman alalım:
            string eleman = (string)sira.Dequeue();
            Console.WriteLine(” \n Sıramizin başından ÅŸunu aldık: ” + eleman);
            //ÅŸimdi ise siranin en başındaki nesneyi öğrenelim.
            // Ama onu ıiradan çıkartmayacağız:
            eleman = (string)sira.Peek();
            Console.WriteLine(” \n Sıramızın başındaki eleman ” + eleman);

            Console.ReadLine();
        }
        public static void DegerleriYaz(IEnumerable kolleksiyon)
        {
            System.Collections.IEnumerator Enum = kolleksiyon.GetEnumerator();

            while (Enum.MoveNext())
                Console.Write(“\t{0}”, Enum.Current);

            Console.WriteLine();
        }
    }

    İŞTE KODUN ÇIKTISI…

    MEHMET SALİH DEVECİ

    BİLGİSAYAR MÜHENDİSİ YAZILIM UZMANI

    Reklamlar

    Bir Cevap Yazın

    Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

    WordPress.com Logosu

    WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

    Twitter resmi

    Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

    Facebook fotoğrafı

    Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

    Google+ fotoğrafı

    Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

    Connecting to %s