Iz E-študij, proste zakladnice študentskega znanja
//Neusmerjen graf s seznamom sosedov
public class UGraphAdj extends DiGraphAdj implements UGraph {
public UGraphAdj() {
super() ;
}
public Vertex adjacentPoint(Edge e, Vertex v) {
VertexAdj endV = ((EdgeAdj)e).endVertex ;
if (endV != v)
return endV ;
else {
for (Edge ev = firstEdge(v) ; ev != null ; ev = nextEdge(v, ev))
for (Edge ea = firstEdge(endPoint(ev)) ; ea != null ; ea = nextEdge(endPoint(ev), ea))
if (ea == e)
return endPoint(ev) ;
return null ; // error
}
}
public void insertEdge(Vertex v1, Vertex v2) {
EdgeAdj newEdge1 = new EdgeAdj(null, (VertexAdj)v2, ((VertexAdj)v1).firstEdge) ;
((VertexAdj)v1).firstEdge = newEdge1 ;
EdgeAdj newEdge2 = new EdgeAdj(null, (VertexAdj)v1, ((VertexAdj)v2).firstEdge) ;
((VertexAdj)v2).firstEdge = newEdge2 ;
}
public static void main(String[] args) {
UGraph uGraph = new UGraphAdj();
for (int i=1 ; i <10 ; i++)
uGraph.insertVertex(new VertexAdj(new Integer(i)));
// graf iste sodosti
for (Vertex vi = uGraph.firstVertex() ; vi != null ; vi = uGraph.nextVertex(vi))
for (Vertex vj = uGraph.firstVertex() ; vj != null ; vj = uGraph.nextVertex(vj))
if ( ((Integer)vj.value).intValue() % 2 == ((Integer)vi.value).intValue() %2 &&
((Integer)vj.value).intValue() < ((Integer)vi.value).intValue() )
uGraph.insertEdge(vi,vj);
System.out.println("Undirected graph adjacency lists for same parity") ;
uGraph.printGraph() ;
}
}