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++; } }
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++; }
public abstract void InsertLast(Calisan value);