Esempio n. 1
0
        //Remove item from the list
        public bool Remove(T item)
        {
            // var z= (((IEnumerable<T>)this).GetEnumerator());
            //IEnumerator IEnumerable.GetEnumerator()
            //var z1 = (((IEnumerable<T>)this).GetEnumerator());
            LInkedListNode <T> previous = null;
            LInkedListNode <T> current  = Head;

            while (current != null)
            {
                if (current.Value.Equals(item))
                {
                    if (previous != null)
                    {
                        previous.Next = current.Next;

                        if (previous.Next == null)
                        {
                            Tail = previous;
                        }
                        Count--;
                    }
                    else
                    {
                        RemoveFirst();
                    }
                    return(true);
                }
                previous = current;
                current  = current.Next;
            }
            return(false);
        }
Esempio n. 2
0
        public void AddFirst(LInkedListNode <T> node)
        {
            LInkedListNode <T> temp = Head;

            Head      = node;
            node.Next = temp;

            Count++;
        }
Esempio n. 3
0
        public void CopyTo(T[] array, int arrayIndex)
        {
            LInkedListNode <T> current = Head;

            while (current.Next != null)
            {
                array[arrayIndex++] = current.Value;
                current             = current.Next;
            }
        }
Esempio n. 4
0
        IEnumerator <T> IEnumerable <T> .GetEnumerator()
        {
            LInkedListNode <T> current = Head;

            while (current.Next != null)
            {
                yield return(current.Value);

                current = current.Next;
            }
        }
Esempio n. 5
0
        public void RemoveFirst()
        {
            if (Count != 0)
            {
                Head = Head.Next;

                Count--;
                if (Count == 0)
                {
                    Tail = null;
                }
            }
        }
Esempio n. 6
0
 private void AddLast(LInkedListNode <T> node)
 {
     if (Count == 0)
     {
         Head = node;
     }
     else
     {
         Tail.Next = node;
     }
     Tail = node;
     Count++;
 }
Esempio n. 7
0
        public bool Contains(T item)
        {
            LInkedListNode <T> current = Head;

            while (current.Next != null)
            {
                if (current.Value.Equals(item))
                {
                    return(true);
                }
                current = current.Next;
            }
            return(false);
        }
Esempio n. 8
0
        public void RemoveLast()
        {
            if (Count != 0)
            {
                if (Count == 1)
                {
                    Head = null;
                    Tail = null;
                }
                else
                {
                    LInkedListNode <T> current = Head;

                    while (current.Next != null)
                    {
                        current = current.Next;
                    }

                    current.Next = null;
                    Tail         = current;
                }
                Count--;
            }
        }