package GPL;
import java.util.LinkedList;
import java.util.Iterator;
// of graph
// ***********************************************************************
public class Vertex {
// dja: changed neighbors and name to public
public LinkedList neighbors;
public String name;
public String getName() { return name; }
public Vertex() {
VertexConstructor();
}
public void VertexConstructor() {
name = null;
neighbors = new LinkedList();
}
public Vertex assignName( String name ) {
this.name = name;
return ( Vertex ) this;
}
public void addNeighbor( Neighbor n ) {
neighbors.add( n );
}
public VertexIter getNeighbors() {
return new VertexIter() {
private Iterator iter = neighbors.iterator();
public Vertex next() { return ((Neighbor)iter.next()).end; }
public boolean hasNext() { return iter.hasNext(); }
};
}
public EdgeIter getEdges()
{
return new EdgeIter()
{
private Iterator iter = neighbors.iterator();
/* dja: changed to fix compile error */
// public EdgeIfc next() { return ((EdgeIfc) iter.next()).edge; }
public EdgeIfc next( )
{
return ( ( EdgeIfc ) ( ( Neighbor ) iter.next( ) ).edge );
}
public boolean hasNext() { return iter.hasNext(); }
};
}
public void display() {
System.out.print( " Node " + getName() + " connected to: " );
for(VertexIter vxiter = getNeighbors(); vxiter.hasNext(); )
{
Vertex v = vxiter.next();
System.out.print( v.getName() + ", " );
}
System.out.println();
}
}