Ejemplo n.º 1
0
 internal Enumerator(Singly <T> singlyList)
 {
     _list    = singlyList;
     _node    = singlyList.Head;
     _current = default;
     _index   = 0;
 }
Ejemplo n.º 2
0
        private void InternalAddFirstNode(SinglyNode <T> node)
        {
            if (node == null)
            {
                Throw.ArgumentNullException(nameof(node));
            }

            Head = Tail = node;
            ++Count;
        }
Ejemplo n.º 3
0
            public bool MoveNext()
            {
                if (_node == null)
                {
                    _index = _list.Count + 1;
                    return(false);
                }

                ++_index;
                _current = _node.Item;
                _node    = _node.Next;
                return(true);
            }
Ejemplo n.º 4
0
        public void AddLast(T item)
        {
            var node = new SinglyNode <T>(item);

            if (IsEmpty)
            {
                InternalAddFirstNode(node);
                return;
            }

            Tail.Next = node;
            Tail      = node;
            ++Count;
        }
Ejemplo n.º 5
0
        public void AddFirst(T item)
        {
            var node = new SinglyNode <T>(item);

            if (IsEmpty)
            {
                InternalAddFirstNode(node);
                return;
            }

            node.Next = Head;
            Head      = node;
            ++Count;
        }
Ejemplo n.º 6
0
 public void Reset()
 {
     _current = default;
     _node    = _list.Head;
     _index   = 0;
 }
Ejemplo n.º 7
0
 internal void Invalidate()
 => Next = null;
Ejemplo n.º 8
0
 public SinglyNode(T item)
 {
     _comparer = EqualityComparer <T> .Default;
     Item      = item;
     Next      = null;
 }