Heap sounds like overkill to find the middle value in a running list. What's wrong with simple stack and keeping track of how many integers you've received?
I'm sorry, but I have absolutely no idea what you are talking about. Perhaps you could describe your solution a bit more.