public IEnumerable <T> BackEnumerator() { DoublyNode <T> cur = tail; while (cur != null) { yield return(cur.Data); cur = cur.Previous; } }
IEnumerator <T> IEnumerable <T> .GetEnumerator() { DoublyNode <T> cur = head; while (cur != null) { yield return(cur.Data); cur = cur.Next; } }
public bool Contains(T data) { DoublyNode <T> cur = head; while (cur != null) { if (cur.Data.Equals(data)) { return(true); } cur = cur.Next; } return(false); }
public void Add(T data) { DoublyNode <T> node = new DoublyNode <T>(data); if (head == null) { head = node; } else { tail.Next = node; node.Previous = tail; } tail = node; count++; }
public void AddFirst(T data) { DoublyNode <T> node = new DoublyNode <T>(data); DoublyNode <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; }