public void AddLast(ValueType value) { DoubleLinkedNode <ValueType> node = new DoubleLinkedNode <ValueType>(value); if (0 == Count) { First = node; } else { node.Previous = Last; node.Previous.Next = node; } Last = node; Count++; }
public void RemoveNode(DoubleLinkedNode <ValueType> node) { if (First.Equals(node)) { RemoveFirst(); } else if (Last.Equals(node)) { RemoveLast(); } else { DoubleLinkedNode <ValueType> temp = node.Previous; node.Previous.Next = node.Next; node.Next.Previous = temp; Count--; } }
public bool Equals(DoubleLinkedNode <ValueType> other) => CompareTo(other) == 0;
public override bool Equals(object obj) { DoubleLinkedNode <ValueType> other = obj as DoubleLinkedNode <ValueType>; return((null == other) ? false : Equals(other)); }
public DoubleLinkedNode(ValueType value, DoubleLinkedNode <ValueType> previous = null, DoubleLinkedNode <ValueType> next = null) { Value = value; Previous = previous; Next = next; }