public void Enqueue(T value) { var current = head; while (current.Next != null && current.Next.Data.CompareTo(value) > 0) { current = current.Next; } var node = new PTreeNode <T> { Data = value, Next = current.Next, Previous = current }; if (current.Next == null) { tail = node; } else { current.Next.Previous = node; } current.Next = node; }
public void Reset() { current = head; }
public bool MoveNext() { current = current.Next; return(current != null); }
public PQEnumerator(PTreeNode <T> head) { this.head = head; current = head; }
public void RemoveTail() { tail = tail.Previous; tail.Next = null; }