コード例 #1
0
        public override void InsertLast(Calisan value)
        {
            //Eski sonuncu node, Head'den başlanarak set ediliyor
            Node oldLast = Head;

            if (Head == null)
            {
                //Hiç kayıt eklenmediği için InsertFirst çağrılabilir
                InsertFirst(value);
            }
            else
            {
                //Yeni sonuncu node yaratılıyor
                Node newLast = new Node
                {
                    Data = value
                };

                //Eski sonuncu node bulunuyor
                //Tail olsaydı sonuncuyu bulmaya gerek yoktu.
                while (oldLast.Next != null)
                {
                    oldLast = oldLast.Next;
                }

                //Eski sonuncu node referansı artık yeni sonuncu node'u gösteriyor
                oldLast.Next = newLast;

                //Bağlı listedeki eleman sayısı bir arttı
                Size++;
            }
        }
コード例 #2
0
        public override void InsertFirst(Calisan value)
        {
            Node tmpHead = new Node();

            tmpHead.Data = value;

            if (Head == null)
            {
                Head = tmpHead;
            }
            else
            {
                //En kritik nokta: tmpHead'in next'i eski Head'i göstermeli
                tmpHead.Next = Head;
                //Yeni Head artık tmpHead oldu
                Head = tmpHead;
            }
            //Bağlı listedeki eleman sayısı bir arttı
            Size++;
        }
コード例 #3
0
 public abstract void InsertLast(Calisan value);