Bolu Beyi tarafından yazıldı Kasım - 30 - 2010 2 Yorum

Bugün veri yapıları ders notlarımdan bir program yazarak sizlerle paylaşacağım. C sharp dili ile çevrimsel bağlı liste oluşturacağız ve eleman ekleme,çıkarma ve listeleme işlemlerini yapacağız. Bunların yanı sıra yapıcı metot kullanımını da öğrenmiş olacağız. Yapacağımız işlemler kuyruk yapılarına göre olacak. Yani ilk giren eleman, ilk çıkacak(FIFO). Sağ tarafta da resimde mantığını kavrayabilirsiniz. Kodları vereyim açıklamasını aşağıda yaparım:

using System;
namespace bolubeyi.net
{
class kuyruk
{
int ilkisaretci, sonisaretci, kapasite, verisayisi;
int[] dizi;
public kuyruk(int kapasite)
{
this.ilkisaretci = 0;
this.sonisaretci = 0;
this.kapasite = kapasite;
this.verisayisi = 0;
this.dizi = new int[kapasite];
}
public void ekle(int veri)
{
if (verisayisi >= kapasite)
Console.WriteLine(“dolu”);
else
{
dizi[sonisaretci] = veri;
sonisaretci = (sonisaretci + 1) % kapasite;
verisayisi++;

}
}
public void sil()
{
if (verisayisi==0)

Console.WriteLine(“silecek veri yok”);
else
ilkisaretci = (ilkisaretci + 1) % kapasite;
verisayisi–;
}
public void listele()
{
for (int i = 0; i < verisayisi; i++)
Console.WriteLine(dizi[(ilkisaretci + i) % kapasite]);
Console.WriteLine(“verisayisi:{0}”, verisayisi);
}
}
class program
{
static void Main()
{
kuyruk kyrk = new kuyruk(8);
kyrk.ekle(1);
kyrk.ekle(2);
kyrk.ekle(3);
kyrk.ekle(4);
kyrk.listele();
kyrk.sil();
kyrk.listele();
}}}

Öncelikle kuyruk adında yeni bir class oluşturduk. Burada değişkenlerimizi tanımlayarak yapıcı metodumuzu yazdık. Diziyi, işaretçilerin yerini ve boyutumuzu belirttik, “this” yapısıyla. Ekle fonkisyonumuz içerisinde veri sayısı kapasiteden küçük olmak şartıyla ekleme işlemini yaptırdık. Çevrimsel olduğu için “sonisaretci = (sonisaretci + 1) % kapasite;” ifadesini kullandık. Sonişaretçinin bir fazlasının modunu aldık. Veri sayısını ekrana yazdıracağımız için bir artırdık. Sil fonksiyonunda da aynı mantık diyebiliriz. Veri sayısı 0’dan küçük olmamak koşuluyla “ilkisaretci = (ilkisaretci + 1) % kapasite;” ifadesini kullandık ve burada da veri sayısını bir azalttık. Listele fonksiyonumuzda for döngüsü içerisinde eklediğimiz elemanları yazdırdık. Aynı zamanda kaç adet veri olduğunu da ekrana bastırdık. Kuyruk adlı class’ımızdan sonra main fonksiyonu kaldı. Burada eleman ekleme çıkarma ve listeleme işlemleri yaptık. Bunun için “kuyruk kyrk = new kuyruk(8);” ifadesiyle kuyruk yapımızı tanımladık. Ben en fazla 8 boyutlu olmasını istediğim için oraya 8 yazdım, bu size kalmış. Daha sonra kafama göre elemanlar ekledim ve çıkardım. Bu programın ekran çıktısı, “1,2,3,4 verisayisi:4—2,3,4 verisayisi:3”  olacaktır.Yukarıda da dediğim gibi ilk giren eleman ilk çıkacak. Umarım ilk veri yapıları ders notum açıklayıcı olmuştur, tekrardan görüşmek üzere…

Bugüne kadar 2 yorum yapıldı

  1. Şeref AKYÜZ dedi ki:

    güzel bir paylaşım başarılarının devamını dilerim … :):)

  2. bolubeyi dedi ki:

    Teşekkür ederim, aynen:)

You must be logged in to post a comment.