UGraphAdj.java

Iz E-študij, proste zakladnice študentskega znanja

Skoči na: navigacija, iskanje
//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() ;
  }
}
Osebna orodja
Imenski prostori
Različice
Dejanja
navigacija

Tiskanje/izvoz
orodja