Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik – Graphen Dies ist ein Graph, weil er Knoten und Kanten hat! © 2010 Manuel Friedrich - eMail: [email protected] Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Auch ein Baum ist ein Graph, Mann…!!! © 2010 Manuel Friedrich - eMail: [email protected] Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Ein Graph besteht aus Knoten © 2010 Manuel Friedrich - eMail: [email protected] Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Ein Baum besteht aus Knoten und Kanten. Jede Kante verbindet zwei Knoten. © 2010 Manuel Friedrich - eMail: [email protected] Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Ein Baum besteht aus Knoten und Kanten. Jede Kante verbindet zwei Knoten. © 2010 Manuel Friedrich - eMail: [email protected] Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Ein Knoten hat ein Datenelement mit Informationen, z. B. den Namen eines Knotens. A F U W H Z © 2010 Manuel Friedrich - eMail: [email protected] K B M Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Ein Pfad im Graphen ist z. B. „ZUFAKW“ A F U W H Z © 2010 Manuel Friedrich - eMail: [email protected] K B M Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Das ist ein Zyklus, wenn Start und Ziel gleich sind. © 2010 Manuel Friedrich - eMail: [email protected] Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Das ist ein ungerichteter Graph ohne Bewertung © 2010 Manuel Friedrich - eMail: [email protected] Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Das ist ein gerichteter Graph mit Bewertung © 2010 Manuel Friedrich - eMail: [email protected] Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Klassendiagramm © 2010 Manuel Friedrich - eMail: [email protected] Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Knotenfeld als Array Knoten[] knotenfeld=new Knoten[7] © 2010 Manuel Friedrich - eMail: [email protected] Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Adjazenzmatrix als zweidimensionales Array int[][] adja=new int[7][7] © 2010 Manuel Friedrich - eMail: [email protected] Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Jetzt geht es los…. Erstelle die Klasse Graph! Wir brauchen ein Knotenfeld und eine Adjazenzmatrix! Die maximale Anzahl soll als Pramater im Konstruktor bestimmt werden. Setze alle Werte der Adjazenzmatrix auf -1! Das Knotenfeld bleibt erstmal leer! © 2010 Manuel Friedrich - eMail: [email protected] Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Erstelle die Klasse Knoten! Als Attribut brauchen wir ein Datenelement daten! Es soll einen Kontruktor mit einem Datenelement als Kontruktor geben! Außerdem brauchen wir eine GetMethode für das Datenelemnt. © 2010 Manuel Friedrich - eMail: [email protected] Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Nun noch die Klasse Datenelement! Wir erstellen ein „Flugnetz“ – jedes Datenelement hat einen Ortsnamen, ein Land in dem sich der Flughafen befindet und eine Währung des Landes, alle drei Parameter sind Strings. Die Methode ausgeben() liefert einen schönen Satz, z. B. „Der Flughafen Frankfurt liegt in Deutschland.“ In Deutschland ist die Wähung „EUR“. © 2010 Manuel Friedrich - eMail: [email protected] Schiller-Gymnasium Hof Manuel Friedrich OStR, Q11 - Informatik - Graph Unser nächstes Ziel! Einen Knoten und Kanten hinzufügen. Welche Informationen brauchen wir dafür? Wo müssen jetzt überall Veränderungen im Knotenfeld und in der Adjazenzmatrix vorgenommen werden? Welche Variable(n) müssen wir einführen? © 2010 Manuel Friedrich - eMail: [email protected]