import java.util.*; import rpi.goldsd.graph.*; import rpi.goldsd.container.*; public class EulerTour { public static void main( String args[] ) { // Create Graph to represent transportation routes (i.e. digraph) Graph G = new Graph( "Transportation Routes" ); // Create the Vertex objects Vertex Albany = new Vertex( "Albany" ); Vertex Chicago = new Vertex( "Chicago" ); Vertex Denver = new Vertex( "Denver" ); Vertex Hartford = new Vertex( "Hartford" ); Vertex LosAngeles = new Vertex( "Los Angeles" ); Vertex Miami = new Vertex( "Miami" ); Vertex Seattle = new Vertex( "Seattle" ); // Add vertices to graph G.add( Albany ); G.add( Chicago ); G.add( Denver ); G.add( Hartford ); G.add( LosAngeles ); G.add( Miami ); G.add( Seattle ); // Add directed edges to graph ... G.add( new DirectedEdge( Albany, Hartford ) ); G.add( new DirectedEdge( Hartford, Chicago ) ); G.add( new DirectedEdge( Hartford, Miami ) ); G.add( new DirectedEdge( Chicago, Albany ) ); G.add( new DirectedEdge( Chicago, Seattle ) ); G.add( new DirectedEdge( Miami, Denver ) ); G.add( new DirectedEdge( Miami, LosAngeles ) ); G.add( new DirectedEdge( LosAngeles, Seattle ) ); G.add( new DirectedEdge( Seattle, Denver ) ); G.add( new DirectedEdge( Seattle, Miami ) ); G.add( new DirectedEdge( Denver, Chicago ) ); G.add( new DirectedEdge( Denver, Hartford ) ); System.out.println( "Determining Euler Tour ..." ); Path Euler = Algorithms.findEulerPath( Albany ); if ( Euler != null ) { System.out.println(); System.out.println( Euler ); System.out.println(); if ( Euler.isReachable( Albany, LosAngeles ) ) System.out.println( "Los Angeles is reachable from Albany." ); if ( Euler.isReachable( Chicago, Hartford ) ) System.out.println( "Hartford is reachable from Chicago." ); System.out.println(); Vertex London = new Vertex( "London" ); G.add( London ); G.add( new DirectedEdge( Albany, London ) ); Euler.add( London ); System.out.println( Euler ); System.out.println(); if ( Euler.isReachable( Seattle, London ) ) System.out.println( "London is reachable from Seattle." ); if ( ! Euler.isReachable( London, LosAngeles ) ) System.out.println( "Los Angeles is not reachable from London." ); } } }