Esempio n. 1
0
 public void Delete(T data)
 {
     if (Head != null)
     {
         var item = new LinkedListItem <T>(data);
         if (Head.Data.Equals(item.Data))
         {
             Head = Head.Next;
             Count--;
             return;
         }
         var current  = Head.Next;
         var previous = Head;
         while (current.Next != null)
         {
             if (current.Data.Equals(item.Data))
             {
                 if (current.Next != null)
                 {
                     previous.Next = current.Next;
                     Count--;
                     return;
                 }
                 else
                 {
                     previous.Next = null;
                     Count--;
                     return;
                 }
             }
             previous = current;
             current  = current.Next;
         }
     }
     else
     {
         throw new ArgumentNullException("Linked list is empty!");
     }
 }
Esempio n. 2
0
 public void SetAfter(T after, T data)
 {
     if (Head != null)
     {
         var current = Head;
         while (current != null)
         {
             if (current.Data.Equals(after))
             {
                 var item = new LinkedListItem <T>(data);
                 item.Next    = current.Next;
                 current.Next = item;
                 Count++;
                 return;
             }
             current = current.Next;
         }
     }
     else
     {
         SetHeadAndTail(data);
     }
 }