Hallo,
Ich habe hier unfertigen/stark fehlerbehafteten Code zur implementierung einer Adjaszensmatrix aus Vorlesungsfolien einer TH. Und würde gerne wissen was in einigen Zeilen gemacht wird, die Zeilen habe ich mit Fragezeichen kommentiert, bin habe gerade erst begonnen Java zu lernen, je ausführlicher die Hilfe desto besser.
Vielen Dank schon mal im Vorraus für die Mühe
Mit freundlichen Grüßen Inso
Ich habe hier unfertigen/stark fehlerbehafteten Code zur implementierung einer Adjaszensmatrix aus Vorlesungsfolien einer TH. Und würde gerne wissen was in einigen Zeilen gemacht wird, die Zeilen habe ich mit Fragezeichen kommentiert, bin habe gerade erst begonnen Java zu lernen, je ausführlicher die Hilfe desto besser.
Vielen Dank schon mal im Vorraus für die Mühe
Mit freundlichen Grüßen Inso
Java:
public class Graph {
interface Vertex{
int getIndex();
void setIndex(int);
interface Graph {
Vertex[ ] getVerties();
void addVertex (Vertex v);
void deleteVertex (Vertex v);
void addEdge (Vertex, Vertex);
void deleteEdge (Vertex, Vertex);
boolean containsEdge (Vertex, Vertex); // ???
Liste successors (Vertex); //Liste wie gehabt // ???
}
}
public class AdjMatrix implements Graph { //was wird von Zeile 20- 39 gemacht ?
private Vertex[ ] verties;
private boolsche[ ] [ ] edges; //?
public AdjMatrix (Liste v){ //?
int l = v.length( ); //?
verties = new Vertex [l]; //?
for (int i = 0; i < l; ++i){ //?
v.first().setIndex(i); //?
verties[i] = v.first( ); //?
v.delete (v.first( )); //?
}
edges = new boolean[l] [l]; //?
for (int i = 0; i < l; ++i){ //?
for(int j = 0; j < l; ++j){ //?
edges[i] [j] = false; //?
}
}
}
public Vertex[ ] getVerties( ){ //?
return verties; //?
}
public void addVertex (Vertex v){...}
//hier: Einfügen einer zusätzlichen Spalte und Zeile
public void deleteVertex (Vertex v){...}
//hier: Löschen der entsprechenden Zeile und Spalte
public void addEdge (Vertex u, Vertex v){
edges[u.getIndex( )][v.getIndex( )] = true;
}
public void deleteEdge (Vertex u, Vertex v){
edges [u.getIndex( )][v.getIndex( )] = false; //?
}
public boolean containsEdge (Vertex u, Vertex v){ //?
return edges[u.getIndex( )][v.getIndex( )] //?
}
public Liste successors (Vertex v){ //?
int h = v.getIndex( ); //?
Liste result = new Liste( ); //?
for(int i = 0; i < verties.length; ++i){ //?
if (edges[h][i]) result.insert(verties[i]); //?
return result;
}
}