Übung Grundbegriffe der Graphentheorie 1
Aus ProgrammingWiki
Inhaltsverzeichnis |
Datenstrukturen für Graphen
- Gegeben ist folgendes IGraph Interface mit einer Hilfsklasse Edge zur einfacheren Behandlung von Kanten
Aufgabe
- Erstelle 2 Klassen die das IGraph Interface implementieren
- als Adjazenzmatrix
- als Adjazenzliste
- Analysiere empirisch die Effizienz dieser beiden Datenstrukturen hinsichtlich
- Speicherbedarf
- Ermittlung des Knotengrades
- Prüfung auf Adjazenz zweier Knoten
Hilfestellung
- Es wird ein Graph-Generator bereitgestellt, der das IGraph Interface benutzt um zufällige Graphen zu erzeugen
- Mit generate werden dem Graph g eine entsprechende Menge von Knoten (cntVertex) und Kanten (cntEdges) zur Initialisierung übergeben
- Die richtige Umsetzung der Speicherung wird mit den Funktionen getVertices und getEdges automatisch geprüft
- Deine implementierte Klasse YourGraph könnte also folgendermaßen mit einem Zufallsgraphen getestet werden
Grundbegriffe
Aufgabe - Zuordnung
Knoten | Kantenzug | geschlossener Kantenzug | einfacher Weg | Weg | einfacher Kreis | Kreis |
---|---|---|---|---|---|---|
{A,B,C} | ||||||
{M,G,H,M} | ||||||
{L,M,G,H,M,L} | ||||||
{Q,O,N,P,Q,M} | ||||||
{G,E,D,G,F,D,G,E} | ||||||
{L,H,G,E,D,G,M,L} |
Aufgabe - Strukturelle Umformungen
a) Finde mindestens zwei Artikulationen.
b) Finde mindestens zwei Brücken.
c) Führe eine Kontraktion mit K durch.
Aufgabe - Teilgraphen
a) Finde zwei Untergraphen
b) Skizziere aus einem Untergraphen verschiedene Teilgraphen
c) Erstelle einen induzierten Teilgraphen aus einem Rad
d) Erstelle einen spannenden Teilgraphen aus einem Rad
Aufgabe - Operationen
Stell den Punkt I auf G um. Führe folgende Operationen durch mit den beiden Rädern durch:
a) Durchschnitt
b) Vereinigung
c) Differenz
d) Erstelle aus einem Rad den Komplementärgraph