Graphen Flashcards

1
Q

Wann ist eine Eulertour in einem Graphen möglich?

A

Wenn maximal zwei Knoten eines Graphen einen ungeraden Grad haben.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind Vor- und Nachteile einer Graphenmodellierung mit Adjazenzlisten?

A

+ Sie belegen nur soviel Speicherplatz wie nötig
- Beim Suchen muss man ggf. erst eine lange Kartenliste durchlaufen
+ Der Graph kann dynamisch ergänzt werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was sind Vor- und Nachteile einer Graphenmodellierung mit Adjazenzmatrizen?

A

+ Es lässt sich schnell prüfen, ob eine Kante vorhanden ist

  • Sie benötigen immer gleich viel und vergleichsweise viel Speicherplatz
  • Der Graph kann nicht dynamisch erweitert werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wann bietet sich eine Adjazenzliste an?

A

Bei dünnen Graphen mit wenigen Kanten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wann bietet sich eine Adjazenzmatrix an?

A

Bei dichten Graphen mit vielen Kanten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie läuft die Tiefensuche in einem Graphen ab?

A
  1. werden alle Markierungen aufgehoben, als
  2. wird der besuchte Knoten markiert und als
  3. wird der ganze Vorgang mit allen Nachbarknoten wiederholt, falls diese nicht markiert sind
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie läuft die Breitensuche in einem Graphen ab?

A
  1. werden alle Markierungen aufgehoben, als
  2. wird der besuchte Knoten markiert, als
  3. wird der besuchte Knoten in eine Liste s eingefügt, als
  4. wird solange s nicht leer ist der vorderste Knoten aus s genommen und dessen, falls sie noch nicht markiert sind, Nachbarknoten markiert und an s angehangen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wann lohnt sich eine Tiefensuche in einem Graphen?

A

Wenn der zu findende Knoten weit von dem Startknoten entfernt zu erwarten ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wann lohnt sich eine Breitensuche in einem Graphen?

A

Wenn der zu findende Knoten nah an dem Startknoten zu erwarten ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie läuft die Suche nach einem Weg von einem zu einem anderen Knoten ab, mithilfe der Tiefensuche und des Backtrackings ab?

A

private boolean sucheWeg(Vertex start, Vertex ziel, List pWeg)
{
//Vertices überschreiben, Startknoten der Wegliste hinzufügen und markieren, Wegliste Access geben
Vertex s = g.getVertex(start.getID());
Vertex z = g.getVertex(ziel.getID());
pWeg.append(s);
s.setMark(true);
pWeg.toFirst();

//Überprüfen, ob der Zielknoten schon gefunden wurde 
 if(!s.getID().equals(z.getID())){ 
//Falls nicht: Nachbarn des Startknoten in eine Nachabrliste packen und dieser Access geben 
 List n = g.getNeighbours(s); 
 n.toFirst(); 
//Jeden Nachbarn aus der Liste abklappern und ab dort mit der Methode weitersuchen, falls derjenige nicht markiert ist 
 while(n.hasAccess()){ 
 if(!n.getContent().isMarked()){ 
 return sucheWeg(n.getContent(), z, pWeg); 
 } 
 n.next(); 
 } 

//Backtracke, nachdem alle Nachabarn durchsucht wurden
pWeg.toLast();
pWeg.remove();
return false;
}

//Füge den Weg der globalen Wegliste hinzu und breche den Vorgang 
 this.weg.concat(pWeg); 
 return true; 
 }
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist die Grundidee vom Dijkstra-Algorithmus?

A

Man verfolgt immer den kürzesten Weg zum nächsten Knotenpunkt und geht dann von dort aus weiter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie läuft der Dijkstra-Algorithmus ab?

A
  1. werden alle Knoten in eine Liste eingefügt, als
  2. wird allen Knoten, außer dem Startknoten, der Wert unendlich zugewiesen, als
  3. erhält der Startknoten den Wert 0, als
  4. wird der Knoten K mit der geringsten Entfernung vom Startknoten aus der Liste entfernt, als
  5. werden die Nachbarknoten betrachtet und dessen Entfernungen zu der von dem derzeit besuchten Knoten K Entfernung zum Startpunkt addiert. Falls diese Summe kleiner als die bisherige Entfernung ist, wird diese als neue Entfernung dessen Nachbarknoten gesetzt und als
  6. wird das ganze bei Schritt 4 wiederholt, bis der Zielknoten entfernt werden soll
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist ein gerichteter Graph?

A

Die Richtung der Kanten ist vorgegeben.
Wenn man in beide Richtungen gehen möchte, sind zwei Kanten nötig.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist ein ungerrichteter Graph

A

Die Richtung der Kanten ist nicht vorgegeben, man kann also auf eine Kante in beide Richtungen gehen. Den einzelnen Kanten werden Gewichte zugeschrieben.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wann ist ein ungerichteter Graph zusammenhängend?

A

Wenn jeder Knoten erreichbar ist, sonst gibt es einzelne Knotengruppen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wann ist ein gerichteter Graph zusammenhängend?

A

Er ist schwach zusammenhängend, wenn er als ungerichteter Graph zusammenhängend wäre.
Er ist stark zusammenhängend von einem Knoten v aus, wenn es vom Knoten v aus einen gerichteten Weg zu allen anderen Knoten gibt.
Er ist stark zusammenhängend, wenn es von jedem Knoten aus einen gerichteten Weg zu jeden anderen Knoten gibt.
Er ist nicht zusammenhängend, wenn es einzelne Knotengruppen gibt.