private void Copy()
 {
     copy = new IndexPriorityQueue <T>(queue.capacity);
     for (int i = 1; 1 <= queue.count; i++)
     {
         copy.Insert(queue.heap[i], queue.keys[queue.heap[i]]);
     }
 }
 public void Dispose()
 {
     queue = null;
 }
 public HeapEnumerator(IndexPriorityQueue <T> queue)
 {
     this.queue = queue;
     Copy();
 }