private void Balance() { if (!LowerHeap.IsEmpty && !UpperHeap.IsEmpty && LowerHeap.Peek() > UpperHeap.Peek()) { int lowerHead = LowerHeap.Poll(); int upperHead = UpperHeap.Poll(); LowerHeap.Add(upperHead); UpperHeap.Add(lowerHead); } }