C#'ta Bağlı Liste ile Koleksiyon Oluşturmak

Bu derste bağlı liste yapısını kullanarak C#'ta array list oluşturmayı öğrenelim.

Bu derste bağlı liste yapısını kullanarak C#'ta array list oluşturmayı öğrenelim.

class dugum
    {
        public int veri;
        public dugum onceki;
        public dugum sonraki;
        public dugum(int veri)
        {
            this.veri = veri;
        }
    }

class ArrayList
    {
        public int kapasite;
        dugum ilk;
        dugum son;
        public ArrayList()
        {
            this.kapasite = 0;
            this.ilk = null;
            this.son = null;
        }          //1.Kurucu metot
        public ArrayList(int boyut)
        {
            this.kapasite = boyut;
            this.ilk = null;
            this.son = null;
        }  //2.Kurucu metot
        public void Add(int veri)
        {
            if (kapasite == Count())
            {
                kapasite = kapasite * 2;
            }
            dugum bilgi = new dugum(veri);
            if (ilk == null)
            {
                ilk = bilgi;
                son = bilgi;
                son.sonraki = null;
            }
            else
            {
                bilgi.onceki = son;
                son.sonraki = bilgi;
                son = bilgi;
                son.sonraki = null;
            }
        }
        public void Listele()
        {
            dugum gecici = ilk;
            if (gecici == null)
            {
                Console.WriteLine("ArrayList Boş...");
            }
            else
            {
                Console.WriteLine("---------------------------------------------------------------");
                Console.WriteLine("ArrayListin İçeriği");
                while (gecici != null)
                {
                    Console.WriteLine(gecici.veri);
                    gecici = gecici.sonraki;
                }
                Console.WriteLine("---------------------------------------------------------------");
            }
        }
        public void Remove(int veri)
        {
            dugum gecici = ilk;
            if (gecici == null)
            {
                Console.WriteLine("Liste bos");
            }
            else
            {
                while (gecici != null)
                {
                    if (gecici.veri == veri)
                    { break; }
                    gecici = gecici.sonraki;
                }
                if (gecici == null)
                {
                    Console.WriteLine("Silinecek eleman listede yok");
                }
                else
                {
                    if (gecici == ilk)
                    {
                        if (ilk == son)
                        {
                            ilk = null;
                            son = null;
                        }
                        else
                        {
                            ilk = ilk.sonraki;
                            ilk.onceki = null;
                        }
                    }
                    else if (gecici == son)
                    {
                        son = son.onceki;
                        son.sonraki = null;
                    }
                    else
                    {
                        gecici.onceki.sonraki = gecici.sonraki;
                        gecici.sonraki.onceki = gecici.onceki;

                    }
                }
            }
        }
        public void RemoveAt(int sira)
        {
            dugum gecici = ilk;
            int a = Count();
            if (a <= sira)
            {

                Console.WriteLine("Listede " + a + " tane eleman var lütfen bu rakami geçmeyiniz !");
            }
            else
            {
                for (int i = 0; i < sira; i++)
                {
                    gecici = gecici.sonraki;
                }
                if (gecici == ilk)
                {
                    if (ilk == son)
                    {
                        ilk = null;
                        son = null;
                    }
                    else
                    {
                        ilk = ilk.sonraki;
                        ilk.onceki = null;
                    }
                }
                else if (gecici == son)
                {
                    son = son.onceki;
                    son.sonraki = null;
                }
                else
                {
                    gecici.onceki.sonraki = gecici.sonraki;
                    gecici.sonraki.onceki = gecici.onceki;

                }
            }
        }
        public void Clear()
        {
            ilk = null;
            son = null;
        }
        public void indexof(int veri)
        {
            int sayac = 0;
            int durum = 0;
            dugum gecici = ilk;
            while (gecici != null)
            {
                if (gecici.veri == veri)
                {
                    durum = 1;
                    break;
                }
                sayac++;
                gecici = gecici.sonraki;
            }
            if(durum==1)
            Console.WriteLine("Aradığınız Eleman Listenin " + sayac + ".elemanı olarak bulundu");
            else
                Console.WriteLine("Aradığınız Eleman Listede bulunmamaktadır...");
        }
        public int Count()
        {
            int sayac = 0;
            dugum gecici = ilk;
            while (gecici != null)
            {
                sayac++;
                gecici = gecici.sonraki;
            }
            return sayac;
        }
        public int Capacity()
        {
            return kapasite;
        }
    }

class Program
    {
        static void Main(string[] args)
        {
            Console.WindowHeight = 40;
            Console.WriteLine("n--------------------------------1.ArrayList---------------------------------");
            ArrayList liste1 = new ArrayList();
            liste1.Add(10);
            liste1.Add(20);
            liste1.Add(50);
            liste1.Add(40);
            liste1.Add(70);
            liste1.Add(65);
            liste1.Listele();
            Console.WriteLine("Liste 1 in eleman sayisi = " + liste1.Count());
            Console.WriteLine("Liste 1 in kapasitesi = " + liste1.Capacity()); //kapasitesiz oluşturduğumuz için kapasite 0 dır
            liste1.Remove(20);//20 numaralı elemanı listeden siler.
            liste1.Listele();
            liste1.RemoveAt(0); //listenin 0.elemanını yani ilk elemanını siler
            liste1.indexof(40);//arama işlemi
            ////////////////////////////////////////////////////////////////////////////////////////
            Console.WriteLine("n--------------------------------2.ArrayList---------------------------------n");
            ArrayList liste2 = new ArrayList(5); //5 boyutlu liste2 arraylisti
            liste2.Listele(); // liste2 boş
            liste2.Add(12);
            liste2.Add(21);
            liste2.Add(23);
            liste2.Add(34);
            liste2.Add(67);
            Console.WriteLine("Liste 2 nin kapasitesi = " + liste2.Capacity()); //kapasite 5
            Console.WriteLine("Liste 2 nin eleman sayisi = "+liste2.Count());
            liste2.Add(63);//kapasite aşıldı
            Console.WriteLine("Liste 2 nin kapasitesi = " + liste2.Capacity()); //kapasiteyi aştığımız için 2 katına 10 a çıktı
            liste2.Listele();
            liste2.Clear(); //liste2 temizlendi
            liste2.Listele();
            Console.ReadKey();
        }
    }

 

Ozan Dalbudak
Merhaba,1995 doğumluyum. 2009 yılında lisede veritabanı Programcılığı bölümünü kazanarak kariyerime başlamış oldum. Daha sonra Selçuk Üniversitesi'nde Bilgisayar Mühendisliği okuyorum.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git