# Deletion in min/max heaps

I think I'm confused about deletion in heaps, and since I have an exam today, I'm looking for your help to correct me.

I will post photos since it will makes it a bit more clear.

What I understand is that , heaps only deletes the root element or the top. So, I made 2 solutions and I'm kindly asking which solution is the correct one.

Q:the heapness will be violated, I will have to replace it by the rightmost element bottom down right? (32)

• It's hard to get what you are doing. But from my understanding the second pictures looks right. In the first picture: what whould be your final heap? – A.Schulz Nov 28 '12 at 10:08
• I'm sorry for that, I tried my best, in the first pic I'll have to do precolate/bubble operations to achieve the heap property again. I think you confirm it. Me too thinking is that the second approach is the correct one. – Sobiaholic Nov 28 '12 at 11:09

A min-heap typically only supports a delete-min operation, not an arbitrary delete(x) operation. I would implement delete(x) as a composition of decrease-key(x, $-\infty$), and delete-min. Recall, that to implement decrease-key, you would bubble up the element to maintain the heap property (in this case all the way to the root). In a binary heap, to implement the delete-min operation, you replace the root by the last element on the last level, and then percolate that element down.