V
 the type of the verticesE
 the type of the edgespublic class AHUUnrootedTreeIsomorphismInspector<V,E> extends Object implements IsomorphismInspector<V,E>
The original algorithm was first presented in "Alfred V. Aho and John E. Hopcroft. 1974. The Design and Analysis of Computer Algorithms (1st ed.). AddisonWesley Longman Publishing Co., Inc., Boston, MA, USA."
This implementation runs in linear time (in the number of vertices of the input trees) while using a linear amount of memory.
For an implementation that supports rooted trees see AHURootedTreeIsomorphismInspector
.
For an implementation that supports rooted forests see AHUForestIsomorphismInspector
.
Note: This inspector only returns a single mapping (chosen arbitrarily) rather than all possible mappings.
Constructor and Description 

AHUUnrootedTreeIsomorphismInspector(Graph<V,E> tree1,
Graph<V,E> tree2)
Construct a new AHU unrooted tree isomorphism inspector.

Modifier and Type  Method and Description 

IsomorphicGraphMapping<V,E> 
getMapping()
Get an isomorphism between the input trees or
null if none exists. 
Iterator<GraphMapping<V,E>> 
getMappings()
Get an iterator over all calculated (isomorphic) mappings between two graphs.

boolean 
isomorphismExists()
Check if an isomorphism exists.

public AHUUnrootedTreeIsomorphismInspector(Graph<V,E> tree1, Graph<V,E> tree2)
tree1
 the first treetree2
 the second treeNullPointerException
 if tree1
or tree2
is null
IllegalArgumentException
 if tree1
or tree2
is not undirectedIllegalArgumentException
 if tree1
or tree2
is emptypublic Iterator<GraphMapping<V,E>> getMappings()
getMappings
in interface IsomorphismInspector<V,E>
public boolean isomorphismExists()
isomorphismExists
in interface IsomorphismInspector<V,E>
public IsomorphicGraphMapping<V,E> getMapping()
null
if none exists.null
is none existsCopyright © 2019. All rights reserved.