void Swap(int position1, int position2)
        {
            HeapElement <T> temp1 = _data[position1];
            HeapElement <T> temp2 = _data[position2];

            _data[position1] = temp2;
            _data[position2] = temp1;
        }
        public HeapElement <T> Dequeue()
        {
            HeapElement <T> minNode = _data[0];

            Swap(0, Count - 1);
            _data.RemoveLast();
            MoveDown(0);
            return(minNode);
        }
 public void Enqueue(HeapElement <T> element)
 {
     _data.Add(element);
     MoveUp(_data.Count - 1);
 }