// joins siblings lists of a and b private void concatenateSiblings(FibonacciHeapNode a, FibonacciHeapNode b) { a.nextSibling.prevSibling = b; b.nextSibling.prevSibling = a; FibonacciHeapNode origAnext = a.nextSibling; a.nextSibling = b.nextSibling; b.nextSibling = origAnext; }
// makes x's nextSibling and prevSibling point to itself private void removeFromSiblings(FibonacciHeapNode x) { if (x.nextSibling == x) return; x.nextSibling.prevSibling = x.prevSibling; x.prevSibling.nextSibling = x.nextSibling; x.nextSibling = x; x.prevSibling = x; }