Zum Hauptinhalt springen

Adjazenzmatrix

Was ist eine Adjazenzmatrix?

Eine Adjazenzmatrix ist eine Matrix-Darstellung eines Graphen.
Sie zeigt, welche Knoten miteinander verbunden sind und – falls vorhanden – wie stark (Gewicht der Kante).


1. Ungewichteter, gerichteter Graph

Knoten: A, B, C
Kanten:

  • A → B
  • A → C
  • B → C

Adjazenzmatrix:

ABC
A011
B001
C000

Hinweis:
1 = Es gibt eine gerichtete Kante von Zeile → Spalte
0 = Keine Verbindung


2. Gewichteter, gerichteter Graph

Knoten: A, B, C
Kanten mit Gewicht:

  • A → B (10)
  • A → C (5)
  • C → B (3)

Adjazenzmatrix:

ABC
A0105
B000
C030

Hinweis:

  • Eintrag [i][j] = w bedeutet: Es gibt eine gerichtete Kante von i nach j mit Gewicht w.

3. Ungewichteter, ungerichteter Graph

Knoten: A, B, C
Kanten:

  • A – B
  • A – C
  • B – C

Adjazenzmatrix:

ABC
A011
B101
C110

Hinweis:
Da der Graph ungerichtet ist, ist die Matrix symmetrisch zur Diagonalen.


4. Gewichteter, ungerichteter Graph

Knoten: A, B, C
Kanten mit Gewicht:

  • A – B (10)
  • A – C (5)
  • B – C (3)

Adjazenzmatrix:

ABC
A0105
B1003
C530

Java-Code: Adjazenzmatrix-Klasse

public class Graph {
private int[][] matrix;
private int size;

public Graph(int size) {
this.size = size;
matrix = new int[size][size];
}

public void addDirectedEdge(int from, int to, int weight) {
matrix[from][to] = weight;
}

public void addUndirectedEdge(int from, int to, int weight) {
matrix[from][to] = weight;
matrix[to][from] = weight;
}

public void printMatrix() {
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
}

Beispiel-Nutzung: Gerichteter, ungewichteter Graph

public class Main {
public static void main(String[] args) {
Graph g = new Graph(3);

// A = 0, B = 1, C = 2
g.addDirectedEdge(0, 1, 1); // A → B
g.addDirectedEdge(0, 2, 1); // A → C
g.addDirectedEdge(1, 2, 1); // B → C

g.printMatrix();
}
}

Ausgabe:

0 1 1
0 0 1
0 0 0

📌 Zusammenfassung

Graph-TypGewichtetGerichtetSymmetrisch
Ungewichtet, ungerichtet
Ungewichtet, gerichtet
Gewichtet, ungerichtet
Gewichtet, gerichtet