public void RemoveKey(T key)
        {
            if (IsEmpty())
            {
                throw new Exception("Список пуст");
            }
            var node = First;

            while (!node.Data.Equals(key))
            {
                node = node.Next;
                if (node == null)
                {
                    return;
                }
            }
            if (node == First)
            {
                First = First.Next;
            }
            else
            {
                node.Previous.Next = node.Next;
            }

            if (node == _last)
            {
                _last = node.Previous;
            }
            else
            {
                node.Next.Previous = node.Previous;
            }
        }
        public void Display()
        {
            NodeTwo <T> node = First;

            while (node != null)
            {
                Console.WriteLine(node);
                node = node.Next;
            }
        }
Esempio n. 3
0
 public bool MoveNext()
 {
     _priviois = _current;
     _current  = _current.Next;
     if (_current == null)
     {
         return(false);
     }
     return(true);
 }
Esempio n. 4
0
        public void AddBefore(T item)
        {
            NodeTwo <T> newNode = new NodeTwo <T>(item);

            _priviois.Next   = newNode;
            newNode.Previous = _priviois;

            _current.Previous = newNode;
            newNode.Next      = _current;
        }
Esempio n. 5
0
        public void AddAfter(T item)
        {
            NodeTwo <T> newNode = new NodeTwo <T>(item);
            var         temp    = _current.Next;

            _current.Next    = newNode;
            newNode.Previous = _current;

            newNode.Next  = temp;
            temp.Previous = newNode;
        }
        public void AddLast(T item)
        {
            var newNode = new NodeTwo <T>(item);

            if (IsEmpty())
            {
                First = newNode;
            }
            else
            {
                _last.Next = newNode;
            }
            newNode.Previous = _last;
            _last            = newNode;
        }
        public T RemoveLast()
        {
            if (IsEmpty())
            {
                throw new Exception("Список пуст");
            }

            var node = _last;

            if (First.Next == null)
            {
                First = null;
            }
            else
            {
                _last.Previous.Next = null;
            }
            _last = _last.Previous;

            return(node.Data);
        }
Esempio n. 8
0
 public void Reset()
 {
     _current = _list.First;
 }