private void SetHeadAndTailItem(T data) { var item = new DuplexItem <T>(data); head = item; tail = item; Count = 1; }
public T PopFront() { if (Count > 0) { var result = head.Data; var current = head.Previous; current.Next = null; head = current; Count--; return(result); } else { return(default(T)); } }
public T PopBack() { if (Count > 0) { var result = tail.Data; var current = tail.Next; current.Previous = null; tail = current; Count--; return(result); } else { return(default(T)); } }
public void PushFront(T data) { if (Count == 0) { SetHeadAndTailItem(data); return; } var item = new DuplexItem <T>(data) { Previous = head }; head.Next = item; head = item; Count++; }
public void PushBack(T data) { if (Count == 0) { SetHeadAndTailItem(data); return; } var item = new DuplexItem <T>(data) { Next = tail }; tail.Previous = item; tail = item; Count++; }