in src/main/java/org/apache/commons/graph/collections/FibonacciHeap.java [450:478]
private void link( FibonacciHeapNode<E> y, FibonacciHeapNode<E> x )
{
// 1 remove y from the root list of H
y.getLeft().setRight( y.getRight() );
y.getRight().setLeft( y.getLeft() );
y.setParent( x );
if ( x.getChild() == null )
{
// 2 make y a child of x, incrementing degree[x]
x.setChild( y );
y.setRight( y );
y.setLeft( y );
}
else
{
y.setLeft( x.getChild() );
y.setRight( x.getChild().getRight() );
x.getChild().setRight( y );
y.getRight().setLeft( y );
}
x.incraeseDegree();
// 3 mark[y] <- FALSE
y.setMarked( false );
markedNodes++;
}