EULERIAN CYCLES
----------------------------------------------------------------------
from graphtheory.structures.edges import Edge
from graphtheory.structures.graphs import Graph
from graphtheory.eulerian.fleury import FleuryDFS            # O(V*E)
from graphtheory.eulerian.fleury import FleuryDFSWithEdges   # O(V*E)
from graphtheory.eulerian.fleury import FleuryBFS            # O(V*E)
from graphtheory.eulerian.fleury import FleuryBFSWithEdges   # O(V*E)
from graphtheory.eulerian.euler import EulerianCycleDFS      # O(E)
from graphtheory.eulerian.euler import EulerianCycleDFSWithEdges   # O(E)
from graphtheory.eulerian.hierholzer import Hierholzer             # O(E)
from graphtheory.eulerian.hierholzer import HierholzerWithEdges    # O(E)

G = Graph()
# Add nodes and edges here.
# algorithm = FleuryDFS(G)
# algorithm = FleuryDFSWithEdges(G)
# algorithm = FleuryBFS(G)
# algorithm = FleuryBFSWithEdges(G)
# algorithm = EulerianCycleDFS(G)
# algorithm = EulerianCycleDFSWithEdges(G)
# algorithm = Hierholzer(G)
algorithm = HierholzerWithEdges(G)
algorithm.run()
print ( algorithm.eulerian_cycle )
----------------------------------------------------------------------
EOF
