/** * A class representing a Graph * * @author Mark Allen Weiss with modifications by Greg Gagne */ import java.util.*; import java.io.*; public class Graph { public static final int INFINITY = Integer.MAX_VALUE; private HashMap vertexMap = new HashMap( ); // Maps vertices to internal Vertex /** * Add the edge connecting the vertices sourceName and destName * to the graph. */ public void addEdge( String sourceName, String destName ) { Vertex v = getVertex( sourceName ); Vertex w = getVertex( destName ); v.adj.add( w ); } // If vertexName is not present, add it to vertexMap. // In either case, return the Vertex. public Vertex getVertex( String vertexName ) { Vertex v = (Vertex) vertexMap.get( vertexName ); if( v == null ) { v = new Vertex( vertexName ); vertexMap.put( vertexName, v ); } return v; } }