It is worth noting that apart from starting near the molecule's geometric center, all other constraints are solely dependent on the connectivity graph and not on specific positions in cartesian space. Hence it is advantageous to use a suitable data structure representing the connectivity graph. Since the following algorithm involves several tests for membership and set intersections, it is advantageous to use hashtable based data structures.