structure5
Class Edge<V,E>

java.lang.Object
  extended by structure5.Edge<V,E>
Direct Known Subclasses:
ComparableEdge

public class Edge<V,E>
extends Object

A class implementing common edge type among graphs. This class supports both directed and undirected edges. Edge may also have visited flags set and cleared.

Typical usage:

     Graph g = new GraphListDirected();
     g.add("harry");
     g.add("sally");
     g.addEdge("harry","sally","friendly");
     Edge e = g.getEdge("harry","sally");
     Object label = e.label();
     if(e.isDirected()){
          Vertex source = e.here();
          Vertex destination = e.there();
     }
     e.visit();
     e.reset();
     ...
 

See Also:
structure.Graph

Constructor Summary
Edge(V vtx1, V vtx2, E label, boolean directed)
          Construct a (possibly directed) edge between two labeled vertices.
 
Method Summary
 boolean equals(Object o)
          Test for equality of edges.
 int hashCode()
          Returns hashcode associated with edge.
 V here()
          Returns the first vertex (or source if directed).
 boolean isDirected()
          Check to see if edge is directed.
 boolean isVisited()
          Check to see if edge has been visited.
 E label()
          Get label associated with edge.
 void reset()
          Clear the visited flag associated with edge.
 void setLabel(E label)
          Sets the label associated with the edge.
 V there()
          Returns the second vertex (or source if undirected).
 String toString()
          Construct a string representation of edge.
 boolean visit()
          Test and set visited flag on vertex.
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Edge

public Edge(V vtx1,
            V vtx2,
            E label,
            boolean directed)
Construct a (possibly directed) edge between two labeled vertices. When edge is directed, vtx1 specifies source. When undirected, order of vertices is unimportant. Label on edge is any type, and may be null. Edge is initially unvisited.

Parameters:
vtx1 - The label of a vertex (source if directed).
vtx2 - The label of another vertex (destination if directed).
label - The label associated with the edge.
directed - True iff this edge is directed.
Method Detail

here

public V here()
Returns the first vertex (or source if directed).

Returns:
A vertex; if directed, the source.

there

public V there()
Returns the second vertex (or source if undirected).

Returns:
A vertex; if directed, the destination.

setLabel

public void setLabel(E label)
Sets the label associated with the edge. May be null.

Parameters:
label - Any object to label edge, or null.

label

public E label()
Get label associated with edge.

Returns:
The label found on the edge.

visit

public boolean visit()
Test and set visited flag on vertex.

Returns:
True iff edge was visited previously.

isVisited

public boolean isVisited()
Check to see if edge has been visited.

Returns:
True iff the edge has been visited.

isDirected

public boolean isDirected()
Check to see if edge is directed.

Returns:
True iff the edge has been visited.

reset

public void reset()
Clear the visited flag associated with edge.


hashCode

public int hashCode()
Returns hashcode associated with edge.

Overrides:
hashCode in class Object
Returns:
An integer code suitable for hashing.

equals

public boolean equals(Object o)
Test for equality of edges. Undirected edges are equal if they connect the same vertices. Directed edges must have same direction.

Overrides:
equals in class Object
Parameters:
o - The other edge.
Returns:
True iff this edge is equal to other edge.

toString

public String toString()
Construct a string representation of edge.

Overrides:
toString in class Object
Returns:
String representing edge.