A high-linking algorithm for sign-changing solutions of semilinear elliptic equations