KGraphList.java

Iz E-študij, proste zakladnice študentskega znanja

Skoči na: navigacija, iskanje
//Implementacija grafa predstavljenega s seznamoma vozlisc in povezav
 
public class KGraphList implements KGraph {
  KVertex fVertex;
  KEdge fEdge;
 
  public KGraphList() {
    makenull();
  }
 
  public void makenull() {
    fVertex = null;
    fEdge = null;
  }
 
  public void insertVertex(KVertex v) {
    v.nextVertex = fVertex;
    fVertex = v;
  }
 
  public void insertEdge(KVertex v1, KVertex v2) {
    KEdge newEdge = new KEdge(null, v1, v2, fEdge);
    fEdge = newEdge;
  }
 
  public void insertEdge(KEdge e) {
    e.nextEdge = fEdge;
    fEdge = e;
  }
 
  public KVertex firstVertex() {
    return fVertex;
  }
 
  public KVertex nextVertex(KVertex v) {
    return v.nextVertex;
  }
 
  public KEdge firstEdge() {
    return fEdge;
  }
 
  public KEdge nextEdge(KEdge e) {
    return e.nextEdge;
  }
 
  public KVertex endPoint1(KEdge e) {
    return e.v1 ;
  }
  public KVertex endPoint2(KEdge e) {
    return e.v2 ;
  }
 
  public void printGraph() {
    System.out.println("Vertices: ");
    for (KVertex v = firstVertex(); v != null; v = nextVertex(v))
      System.out.print(v.value + ", ");
    System.out.print("\nEdges: ");
    for (KEdge e = firstEdge(); e != null; e = nextEdge(e))
        System.out.print("<" + endPoint1(e).value + ", " + endPoint2(e).value + ">, ");
    System.out.println();
  }
 
  public static void main(String[] args) {
    KGraph kGraph = new KGraphList();
    for (int i = 1; i < 10; i++)
       kGraph.insertVertex(new KVertex(new Integer(i)));
       // graf iste sodosti
     for (KVertex vi = kGraph.firstVertex() ; vi != null ; vi = kGraph.nextVertex(vi))
       for (KVertex vj = kGraph.firstVertex() ; vj != null ; vj = kGraph.nextVertex(vj))
          if ( ((Integer)vj.value).intValue() % 2 == ((Integer)vi.value).intValue() %2 &&
                ((Integer)vj.value).intValue() < ((Integer)vi.value).intValue() )
               kGraph.insertEdge(vi,vj);
       System.out.println("Undirected Kgraph lists for same parity") ;
       kGraph.printGraph() ;
  }
}
Osebna orodja
Imenski prostori
Različice
Dejanja
navigacija

Tiskanje/izvoz
orodja