示例#1
0
文件: Singly.cs 项目: phougatv/dsa
 internal Enumerator(Singly <T> singlyList)
 {
     _list    = singlyList;
     _node    = singlyList.Head;
     _current = default;
     _index   = 0;
 }
示例#2
0
文件: Singly.cs 项目: phougatv/dsa
        private void InternalAddFirstNode(SinglyNode <T> node)
        {
            if (node == null)
            {
                Throw.ArgumentNullException(nameof(node));
            }

            Head = Tail = node;
            ++Count;
        }
示例#3
0
文件: Singly.cs 项目: phougatv/dsa
            public bool MoveNext()
            {
                if (_node == null)
                {
                    _index = _list.Count + 1;
                    return(false);
                }

                ++_index;
                _current = _node.Item;
                _node    = _node.Next;
                return(true);
            }
示例#4
0
文件: Singly.cs 项目: phougatv/dsa
        public void AddLast(T item)
        {
            var node = new SinglyNode <T>(item);

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

            Tail.Next = node;
            Tail      = node;
            ++Count;
        }
示例#5
0
文件: Singly.cs 项目: phougatv/dsa
        public void AddFirst(T item)
        {
            var node = new SinglyNode <T>(item);

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

            node.Next = Head;
            Head      = node;
            ++Count;
        }
示例#6
0
文件: Singly.cs 项目: phougatv/dsa
 public void Reset()
 {
     _current = default;
     _node    = _list.Head;
     _index   = 0;
 }
示例#7
0
文件: Singly.cs 项目: phougatv/dsa
 internal void Invalidate()
 => Next = null;
示例#8
0
文件: Singly.cs 项目: phougatv/dsa
 public SinglyNode(T item)
 {
     _comparer = EqualityComparer <T> .Default;
     Item      = item;
     Next      = null;
 }