private static void Main(string[] args) { MaxHeap s = new MaxHeap(); s.Enqueue(1); Console.WriteLine(s.count); }
public void AddNum(int num) { if (max.count == 0) { max.Enqueue(num); } else if (max.count == min.Count) { if (num < max.GetMax()) { max.Enqueue(num); } else { min.Add(num); } } else if (max.count > min.Count) { if (num > max.GetMax()) { min.Add(num); } else { int prev = max.GetMax(); min.Add(prev); max.Dequeue(); max.Enqueue(num); } } else { if (num < min.Min) { max.Enqueue(num); } else { int prev = min.Min(); max.Enqueue(prev); min.Remove(prev); min.Add(num); } } }