public T GetLast() { if (Count <= 1) { return(GetFirst()); } else { DoublyNode <T> lastNode = GetLastNode(); return(lastNode.Value); } }
public void AddFirst(T value) { DoublyNode <T> temp = new DoublyNode <T>(value); temp.Next = Head; if (Head != null) { Head.Previous = temp; } Head = temp; Count++; }
public void RemoveFirst() { if (Head != null) { Head = Head.Next; if (Head != null) { Head.Previous = null; } Count--; } }
public bool Contains(T value) { DoublyNode <T> temp = Head; while (temp != null) { if (temp.Value.Equals(value)) { return(true); } temp = temp.Next; } return(false); }
public void RemoveLast() { if (Count <= 1) { RemoveFirst(); } else { DoublyNode <T> lastNode = GetLastNode(); lastNode.Previous.Next = null; lastNode.Previous = null; Count--; } }
public void AddLast(T value) { if (Count <= 1) { AddFirst(value); } else { DoublyNode <T> temp = new DoublyNode <T>(value); DoublyNode <T> lastNode = GetLastNode(); lastNode.Next = temp; temp.Previous = lastNode; Count++; } }
public void Remove(T value) { DoublyNode <T> temp = Head; while (temp != null) { if (temp.Value.Equals(value)) { temp.Previous.Next = temp.Next; temp.Next.Previous = temp.Previous; Count--; break; } } }
public DoublyNode(T value) { this.Next = null; this.Previous = null; this.Value = value; }
public void Clear() { Head = null; Count = 0; }