Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
 public void Reset()
 {
     current = head;
 }
Ejemplo n.º 3
0
 public bool MoveNext()
 {
     current = current.Next;
     return(current != null);
 }
Ejemplo n.º 4
0
 public PQEnumerator(PTreeNode <T> head)
 {
     this.head = head;
     current   = head;
 }
Ejemplo n.º 5
0
 public void RemoveTail()
 {
     tail      = tail.Previous;
     tail.Next = null;
 }