Example #1
0
        public override void InsertPos(int position, Personel value)
        {
            NodePersonel eklenecek = new NodePersonel {
                personel = value
            };
            NodePersonel onceki  = null;
            NodePersonel sonraki = null;
            NodePersonel simdiki = Head;
            int          count   = 0;

            if (Head == null)
            {
                InsertFirst(value);
            }
            while (simdiki != null)
            {
                if (count == position - 1)
                {
                    onceki         = simdiki;
                    sonraki        = simdiki.Next;
                    onceki.Next    = eklenecek;
                    eklenecek.Next = sonraki;
                    break;
                }
                simdiki = simdiki.Next;
                count++;
            }
            Size++;
        }
Example #2
0
        public override void InsertLast(Personel value)
        {
            //Eski sonuncu node, Head'den başlanarak set ediliyor
            NodePersonel 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
                NodePersonel newLast = new NodePersonel
                {
                    personel = 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++;
            }
        }
Example #3
0
        public override void DeletePos(int position)
        {
            if (position == 0)
            {
                DeleteFirst();
            }
            NodePersonel onceki  = null;
            NodePersonel sonraki = null;
            NodePersonel simdiki = Head;
            int          count   = 0;

            if (Head.Next == null)
            {
                DeleteFirst();
            }
            while (simdiki != null)
            {
                if (count == position - 1)
                {
                    onceki      = simdiki;
                    onceki.Next = simdiki.Next.Next;
                    sonraki     = onceki.Next;
                    break;
                }
                simdiki = simdiki.Next;
                count++;
            }
            simdiki = null;
            Size++;
        }
Example #4
0
        public override void DeleteLast()
        {
            //Last node bulunup NULL yapılacak
            NodePersonel lastNode = Head;
            //Last node'dan bir önceki node'un Next'i null olacak
            NodePersonel lastPrevNode = null;

            while (lastNode.Next != null)
            {
                lastPrevNode = lastNode;
                lastNode     = lastNode.Next;
            }
            //Listedeki eleman sayısı bir azaltılıyor
            Size--;
            //Last node null oldu
            lastNode = null;

            //Last node'dan önceki node varsa onun next'i null olacak yoksa zaten tek kayıt vardır,
            //o da Head'dir, o da null olacak
            if (lastPrevNode != null)
            {
                lastPrevNode.Next = null;
            }
            else
            {
                Head = null;
            }
        }
Example #5
0
        /*   public override NodePersonel GetElement(Personel position)
         * {
         *     //Geri dönülecek eleman
         *     NodePersonel retNode = null;
         *     //Head'den başlanarak Next node'a gidilecek
         *     NodePersonel tempNode = Head;
         *     int count = 0;
         *
         *     while (tempNode != null)
         *     {
         *         if (count == position)
         *         {
         *             retNode = tempNode;
         *             break;
         *         }
         *         //Next node'a git
         *         tempNode = tempNode.Next;
         *         count++;
         *     }
         *     return retNode;
         * }*/

        public override string DisplayElements()
        {
            string       temp = "";
            NodePersonel item = Head;

            while (item != null)
            {
                temp += "-->" + item.personel.PerAd;
                item  = item.Next;
            }

            return(temp);
        }
Example #6
0
 public override void DeleteFirst()
 {
     if (Head != null)
     {
         //Head'in next'i HeadNext'e atanıyor
         NodePersonel tempHeadNext = this.Head.Next;
         //HeadNext null ise zaten tek kayıt olan Head silinir.
         if (tempHeadNext == null)
         {
             Head = null;
         }
         else
         {
             //HeadNext null değilse yeni Head, HeadNext olur.
             Head = tempHeadNext;
         }
         //Listedeki eleman sayısı bir azaltılıyor
         Size--;
     }
 }
Example #7
0
        public override void InsertFirst(Personel value)
        {
            NodePersonel tmpHead = new NodePersonel
            {
                personel = 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++;
        }