Efficient Algorithms For Graph Substructure Search