Nonredundant and exhaustive generation of stereoisomers of a chemical compound with a specified constitution is one of the important tools for molecular structure elucidation and molecular design. In this paper, we deal with chemical compounds composed of carbon, hydrogen, oxygen and nitrogen atoms whose graphical structures are tree-like graphs because these compounds are most fundamental, and consider stereoisomers that can be generated by asymmetric carbon atoms and double bonds between two adjacent carbon atoms. Based on dynamic programming, we propose an algorithm of generating all stereoisomers without duplication. We treat a given tree-like graph as a tree rooted at its structural center. Our algorithm first computes recursively the numbers of stereoisomers of the subgraphs induced by the descendants of each vertex, and then constructs each stereoisomer by backtracking the process of computing the numbers of stereoisomers. Our algorithm correctly counts the number of stereoisomers in O(n) time and space, and correctly enumerates all the stereoisomers in O(n) space and in O(n) time per stereoisomer, where n is the number of atoms in a given structure. The source code of the program implementing the proposed algorithm is freely available for academic use upon request.
Mendeley saves you time finding and organizing research
Choose a citation style from the tabs below