Übung Grundbegriffe der Graphentheorie 1

Aus ProgrammingWiki

Wechseln zu: Navigation, Suche

Loading

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
    1. als Adjazenzmatrix
    2. als Adjazenzliste
  • Analysiere empirisch die Effizienz dieser beiden Datenstrukturen hinsichtlich
    1. Speicherbedarf
    2. Ermittlung des Knotengrades
    3. 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

Ghx8 ; FFahrrad.png

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

Persönliche Werkzeuge