structure
Class GraphListUndirected
java.lang.Object
|
+--structure.AbstractStructure
|
+--structure.GraphList
|
+--structure.GraphListUndirected
- All Implemented Interfaces:
- Graph, Structure
- public class GraphListUndirected
- extends GraphList
A GraphListUndirected is a list-based graph representation that consists
of a collection of vertices and undirected edges. Portions of the graph
may be marked visited to support iterative algorithms.
Iteration is provided over vertices, edges, and vertices adjacent to a
particular vertex.
Example Usage:
To create a graph representation of the movie theaters nearest
the Williams College Department of Computer Science's unix laboratory,
and to print these theaters out in order of increasing distance,
we could use the following:
public static void main(String[] argv){
Graph theaters = new GraphListUndirected()
;
FibHeap heap = new FibHeap();
//instantiate array of locations
String[] locations = new String[]{"TCL 312", "Images Cinema",
"Movie Plex 3", "Cinema 1,2,&3",
"Cinema 7", "Berkshire Mall Cinemas"
,"Hathaway's Drive Inn Theatre",
"Hollywood Drive-In Theatre"};
//instantiate array of distances between location[0]
//and movie theaters
double[] distances = new double[]{-1, 0.0, 12.6, 12.9, 12.9,
14.7, 16.5, 18.0};
//build graph
for(int i=0; i < locations.length; i++) theaters.add(locations[i]);
for(int i=1; i < distances.length; i++){
theaters.addEdge(locations[0],locations[i],new Double(distances[i]))
;
}
//place neighbors of lab in into priority queue
for(Iterator i=theaters.neighbors(locations[0])
; i.hasNext();){
Object theater = i.next();
Object distance = theaters.getEdge(locations[0], theater).label()
;
heap.add(new ComparableAssociation((Comparable)distance,theater));
}
//print out theaters in order of distance
while(!heap.isEmpty()){
ComparableAssociation show = (ComparableAssociation)heap.remove();
System.out.println(show.getValue()+" is "+show.getKey()+" miles away.");
}
}
- See Also:
GraphList
,
GraphListDirected
,
GraphMatrixUndirected
Methods inherited from class structure.GraphList |
add, clear, contains, containsEdge, degree, edges, get, getEdge, isDirected, isEmpty, isVisited, isVisitedEdge, iterator, main, neighbors, reset, size, visit, visitEdge |
Methods inherited from class java.lang.Object |
, clone, equals, finalize, getClass, notify, notifyAll, registerNatives, wait, wait, wait |
GraphListUndirected
public GraphListUndirected()
- Construct an undirected, adjacency-list based graph.
addEdge
public void addEdge(Object vLabel1,
Object vLabel2,
Object label)
- Add an edge between two vertices within the graph. Edge is undirected.
Duplicate edges are silently replaced.
Labels on edges may be null.
- Overrides:
addEdge
in class GraphList
- Parameters:
vLabel1
- One vertex.vLabel2
- Another vertex.label
- Label associated with the edge.- Precondition:
- vLabel1 and vLabel2 are labels of existing vertices, v1 & v2
- Postcondition:
- an edge (undirected) is inserted between v1 and v2;
if edge is new, it is labeled with label (can be null)
remove
public Object remove(Object label)
- Remove a vertex from the graph. Associated edges are also
removed. Non-vertices are silently ignored.
- Overrides:
remove
in class GraphList
- Parameters:
label
- The label of the vertex within the graph.- Precondition:
- label is non-null vertex label
- Postcondition:
- vertex with "equals" label is removed, if found
- Returns:
- The label associated with the vertex.
removeEdge
public Object removeEdge(Object vLabel1,
Object vLabel2)
- Remove possible edge between vertices labeled vLabel1 and vLabel2.
- Overrides:
removeEdge
in class GraphList
- Parameters:
vLabel1
- One vertex.vLabel2
- Another vertex.- Precondition:
- vLabel1 and vLabel2 are labels of existing vertices
- Postcondition:
- edge is removed, its label is returned
- Returns:
- The label associated with the edge removed.
edgeCount
public int edgeCount()
- Determine the number of edges in graph.
- Overrides:
edgeCount
in class GraphList
- Postcondition:
- returns the number of edges in graph
- Returns:
- Number of edges in graph.
toString
public String toString()
- Construct a string representation of graph.
- Overrides:
toString
in class Object
- Postcondition:
- returns string representation of graph
- Returns:
- String representing graph.