Übung Grundbegriffe der Graphentheorie 1

Aus ProgrammingWiki
Archivierte Version vom 2015-10-28T12:17:22+00:00. Aktuelle Version

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
Lösungen

RaZ_GraphAdjMatList.zip RaZ_Effizienz.png

Grundbegriffe

Ghx8 ;_FFahrrad.png

Aufgabe

KnotenKantenzuggeschlossener Kantenzugeinfacher WegWegeinfacher KreisKreis
{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

a) Finde mindestens zwei Artikulationen.

b) Finde mindestens zwei Brücken.

c) Führe eine Kontraktion mit K durch.

Aufgabe

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

Stell den Punkt I auf G um (gedanklich). Führe folgende Operationen durch:

a) Vereinigung

b) Durschnitt

c) Differenz

d) Erstelle aus einem Rad den Komplementärgraph