Tekli Bağlı Listeler #1

Örnek-7: Head, tekli bağlı listenin ilk bloğuna bakmaktadır. İlk elemanını siliniz. Listenin tüm elemanlarını yazdırarak elemanın silindiğini gözlemleyiniz.

using System;

namespace tekliBagliListe_7
{
    class Program
    {
        static Tekli Head;
        class Tekli
        {
            public int data;
            public Tekli next;
        }
        static void Main(string[] args)
        {
            Tekli a = null;
            Tekli x = null;
            for (int i = 0; i < 10; i++)
            {
                a = new Tekli();
                a.data = i;
                a.next = null;
                if (Head == null)
                {
                    Head = a;
                    x = a;
                }
                else
                {
                    x.next = a;
                    x = a;
                }
            }
            // İlk elemanın silinmesi
            Head = Head.next;
            x = Head;
            while (x != null)
            {
                Console.WriteLine(x.data);
                x = x.next;
            }
        }
    }
}

Örnek-8: Head, tekli bağlı listenin ilk bloğuna bakmaktadır. Son elemanını siliniz. Listenin tüm elemanlarını yazdırarak son elemanın silindiğini gözlemleyiniz.

using System;

namespace tekliBagliListe_8
{
    class Program
    {
        static Tekli Head;
        class Tekli
        {
            public int data;
            public Tekli next;
        }
        static void Main(string[] args)
        {
            Tekli a = null;
            Tekli x = null;
            for (int i = 0; i < 10; i++)
            {
                a = new Tekli();
                a.data = i;
                a.next = null;
                if (Head == null)
                {
                    Head = a;
                    x = a;
                }
                else
                {
                    x.next = a;
                    x = a;
                }
            }
            x = Head;
            while (x.next.next != null)
                x = x.next;
            x.next = null;

            x = Head;
            while (x != null)
            {
                Console.WriteLine(x.data);
                x = x.next;
            }
        }
    }
}

Örnek-9: Head, tekli bağlı listenin ilk bloğuna bakmaktadır. Listede kaç eleman vardır?

using System;

namespace tekliBagliListe_9
{
    class Program
    {
        static Tekli Head;
        class Tekli
        {
            public int data;
            public Tekli next;
        }

        static void Main(string[] args)
        {
            Tekli a = null;
            Tekli x = null;
            for (int i = 0; i < 100; i++)
            {
                a = new Tekli();
                a.data = i;
                a.next = null;
                if (Head == null)
                {
                    Head = a;
                    x = a;
                }
                else
                {
                    x.next = a;
                    x = a;
                }
            }
            x = Head;
            int adet = 0;
            while (x != null)
            {
                adet++;
                x = x.next;
            }
            Console.WriteLine(adet);
        }
    }
}

Örnek-10: Head, tekli bağlı listenin ilk elemanına bakmaktadır. Listede veri değeri 66 olan kaç blok vardır?

using System;

namespace tekliBagliListe_10
{
    class Program
    {
        static Tekli Head;
        class Tekli
        {
            public int data;
            public Tekli next;
        }
        static void Main(string[] args)
        {
            Tekli a = null;
            Tekli x = null;
            for (int i = 0; i < 100; i++)
            {
                a = new Tekli();
                a.data = i;
                a.next = null;
                if (Head == null)
                {
                    Head = a;
                    x = a;
                }
                else
                {
                    x.next = a;
                    x = a;
                }
            }
            x = Head;
            int adet = 0;
            while (x != null)
            {
                if (x.data == 66) adet++;
                x = x.next;
            }
            Console.WriteLine(adet);
        }
    }
}

Örnek-11: Head, tekli bağlı listenin ilk elemanına bakmaktadır. Listenin içerisinde veri değeri 7 olan bloktan sonra yeni bir blok ekleyiniz. Ardından listenin tüm elemanlarını yazdırarak bloğun eklenip eklenmediğini kontrol ediniz.

using System;

namespace tekliBagliListe_11
{
    class Program
    {
        static Tekli Head;
        class Tekli
        {
            public int data;
            public Tekli next;
        }
        static void Main(string[] args)
        {
            Tekli a = null;
            Tekli x = null;
            for (int i = 0; i < 100; i++)
            {
                a = new Tekli();
                a.data = i;
                a.next = null;
                if (Head == null)
                {
                    Head = a;
                    x = a;
                }
                else
                {
                    x.next = a;
                    x = a;
                }
            }
            x = Head;
            while (x != null)
            {
                if (x.data == 7)
                {
                    Tekli yeni = new Tekli();
                    yeni.data = 123;
                    yeni.next = x.next;
                    x.next = yeni;
                }
                x = x.next;
            }
            x = Head;
            while (x != null)
            {
                Console.WriteLine(x.data);
                x = x.next;
            }
        }
    }
}

Örnek-12: Head, tekli bağlı listenin ilk elemanına bakmaktadır. Veri değeri 7 olan bloktan önceki bloğu siliniz. Ardından listenin elemanlarını yazdırarak bloğun silinip silinmediğini kontrol ediniz.

using System;

namespace tekliBagliListe_12
{
    class Program
    {
        static Tekli Head;
        class Tekli
        {
            public int data;
            public Tekli next;
        }
        static void Main(string[] args)
        {
            Tekli a = null;
            Tekli x = null;
            for (int i = 0; i < 100; i++)
            {
                a = new Tekli();
                a.data = i;
                a.next = null;
                if (Head == null)
                {
                    Head = a;
                    x = a;
                }
                else
                {
                    x.next = a;
                    x = a;
                }
            }
            x = Head;
            while (x != null)
            {
                if (x.next == null || x.next.next == null) break;
                if (x.next.next.data == 7)
                    x.next = x.next.next;
                x = x.next;
            }
            x = Head;
            while (x != null)
            {
                Console.WriteLine(x.data);
                x = x.next;
            }
        }
    }
}