// The user must call this function to signal that a key has been decresed. // The function will then remove the node and subnodes from the heap, then // merge them back in. The user gets the heap node reference from insert. public void decreaseKey(HeapNode <T> node) { if (node == top || node == null || top == null) { return; } node.extract(); if (merge(top, node) == node)// Node has become new top { top = node; } }