Fachbereich IV - Abteilung Informatik Algorithmen

Werbung
Fachbereich IV - Abteilung Informatik
Algorithmen und Datenstrukturen
Universität Trier
Daniel Schmitt Tel.: (0651)201-3272
5. Übung:
Softwarepraktikum C++
Sommersemester 2007
16. Mai 2007
Abgabe per Email bis Mittwoch, 23. Mai 2007
Aufgabe 5.1:
(Punkte 8)
Visualisierung MST:
Konstruieren Sie mit GraphWin einen ungerichteten (bidirekten), (positiv) gewichteten
und zusammenhaengenden Graphen G = (V, E).
Berechnen und visualisieren Sie den Minimum Spanning Tree T (G) mit dem Algorithmus
von Prim:
• Waehlen Sie einen Knoten als Startbaum T.
• Verwalten Sie die Kanten adjazent zu T, sortiert nach Gewichtung, in Liste L.
• Solange nicht alle Knoten im Baum enthalten sind:
– Waehlen Sie die minimalste Kante, die einen neuen Knoten K zu T hinzufuegt.
– Ordnen Sie die Kanten von K in L ein.
Hinweise:
• Benutzen Sie die Dateien auf der Homepage.
• Benutzen Sie die Befehl Edit->Make->Bidirected von GraphWin oder die Funktionen G.make bidirected() und G.make map() (siehe Code), um sicherzustellen,
dass fuer jedes Edge ein reversal Edge definiert ist.
• http://www.algorithmic-solutions.info/leda manual/graphwin.html.
• http://www.leda-tutorial.org/en/unofficial/ch05s02s05.html.
Aufgabe 5.2:
(Punkte 8)
Visualisierung von Baeumen:
Sei T = (V, E) ein Baum mit gewichteten Kanten. Zwischen zwei beliebigen Knoten
u, v ∈ V existiert ein eindeutiger Pfad. Die Laenge des Pfades ist die Summe seiner Kantengewichte. Das Diameter eines Baumes ist der laengste Pfad des Baums. Berechnen
und visualisieren Sie das Diameter eines Baumes, repraesentiert durch einen bidirekten,
gewichteten Graphen.
Hinweise:
• Benutzen Sie Breiten- oder Tiefensuche.
• Waehrend der Suche, auf dem Rueckweg von den Blaettern zur Wurzel, speichern
Sie die Laenge des laengsten Pfades A und des zweit- laengsten Pfades B jedes
Knoten zu einem Blatt. Auserdem protokollieren Sie den jeweils naechsten Knoten
auf den Pfaden A und B.
• Speichern Sie den Knoten mit den in der Summe teuersten beiden Pfaden.
Herunterladen