public IEnumerable <T> BackEnumerator() { DoubleNode <T> current = Tail; while (current != null) { yield return(current.Data); current = current.Previous; } }
IEnumerator <T> IEnumerable <T> .GetEnumerator() { DoubleNode <T> current = Head; while (current != null) { yield return(current.Data); current = current.Next; } }
public bool Contains(T data) { DoubleNode <T> current = Head; while (current != null) { if (current.Data.Equals(data)) { return(true); } current = current.Next; } return(false); }
public void Add(T Data) { DoubleNode <T> node = new DoubleNode <T>(Data); if (Head == null) { Head = node; } else { Tail.Next = node; node.Previous = Tail; } Tail = node; count++; }
public void AddFirst(T Data) { DoubleNode <T> node = new DoubleNode <T>(Data); DoubleNode <T> temp = Head; node.Next = temp; Head = node; if (count == 0) { Tail = Head; } else { temp.Previous = node; } count++; }
public void Clear() { Head = null; Tail = null; count = 0; }