public void decreaseKey(Fnode node, int newVal) { if (node == min) { node.data = newVal; return; } /* * if((int)node.data==(int)min.data){ node.data = newVal; return; } */ if (node.parent == null) { if (newVal < (int) node.data) { node.data = newVal; if ((int) min.data > (int) node.data) { min = node; } } } /*else if(newVal < (int)node.data && newVal>=(int)node.parent.data){ node.data = newVal; }else */ if (newVal < (int) node.data) { if (node.right == node) { node.data = newVal; if (node.parent.child == node) { node.parent.child = null; } recurringOps(node); /* * node.parent = null; insert(node); */ } else { if (node.parent.child == node) { node.data = newVal; node.parent.child = node.right; removeReference(node); recurringOps(node); } else { node.data = newVal; removeReference(node); recurringOps(node); } } } }