PI (Fach) / Graphen: Repräsentation (Lektion)

In dieser Lektion befinden sich 4 Karteikarten

Graphen: Repräsentation

Diese Lektion wurde von blace erstellt.

Lektion lernen

Diese Lektion ist leider nicht zum lernen freigegeben.

  • Was ist eine Adjazenz-Matrix? Erläutere an einem geeigneten Beispiel. Eine Adjazenz-Matrix ist eine Boolsche Matrix, welche die adjazenz der Knoten im Graphen beschreibt. Dabei wird die Matrix mit A0(aij) beschrieben, sie hat die Größe |V| X |V| also sind i,j ∈{1,.....,|V|} hierbei sind aij true falls (i,j) ∈ E und falls falls (i,j) ∉ E Mit dem Beispiel aus der Volresung also einem Graphen, der das Element 1 ohne asugehende Kante, das Elment 2 mit 2 ausgehenden nach 1 und 3, 3 mit einem nach 4 und 4 mit einem nach 1, sowie 5 welches eine zu sich selber hat wäre die matrix also: i/j    1       2       3       4        5 1   false     false  false  false   false 2 true       false   true  false    false 3  false     false     false  true   false 4 true       false false     false    false 5 false false        false    false    true
  • Welche Vor- und Nachteile hat die Darstellung eines Graphen als Adjazenz-Matrix? Vorteile: übersichtliche Darstellung des Graphen
  • Erläutere, wie ein Graph in Form einer Adjazenz-Liste dargestellt werden kann. Wenn man den Graphen mittels einer Adjazenz Liste darstellen möchte, tut man dies, indem die einzelnen Knoten in einem Array dargestellt werden und an die jeweilige Stelle dann eine Liste der Adjazenten Knoten eingetragen wird.
  • Wie wird die Darstellung eines Graphen in Form einer Adjazenz-Liste in Java realisiert? public class AdjList {  private static class Edge {         public final int target;         public Edge next;      public Edge(final int pTarget, final Edge pNext) {           target = pTarget;           next = pNext;      }   }   private final Edge[ ] a;  public AdjList(final int nodes) {       a = new Edge[nodes];  }  public boolean adjacent(final int i, final int j) {         Edge e = a[i];         while (e != null && e.goal != j) {         e = e.next;         }         return e != null;  }  public void addEdge(final int i, final int j) {              if (!adjacent(i, j)) {                   a[i] = new Edge(j, a[i]);              }  }}