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; } }
public bool MoveNext() { _priviois = _current; _current = _current.Next; if (_current == null) { return(false); } return(true); }
public void AddBefore(T item) { NodeTwo <T> newNode = new NodeTwo <T>(item); _priviois.Next = newNode; newNode.Previous = _priviois; _current.Previous = newNode; newNode.Next = _current; }
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); }
public void Reset() { _current = _list.First; }