Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

16.08.2014se_7_graphen_und_baeume_III.ppt1 Softwareengineering Graphen und Bäume Teil II Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law.

Ähnliche Präsentationen


Präsentation zum Thema: "16.08.2014se_7_graphen_und_baeume_III.ppt1 Softwareengineering Graphen und Bäume Teil II Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law."—  Präsentation transkript:

1 se_7_graphen_und_baeume_III.ppt1 Softwareengineering Graphen und Bäume Teil II Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law

2 se_7_graphen_und_baeume_III.ppt2 Typische Operationen auf Graphen -Test, ob der Graph ein zusammenhängender Graph ist -Zyklensuche im Graphen -Kürzester Weg von Knoten a nach Knoten b -usw. -Wir konzentrieren uns hier beispielhaft auf die Zyklensuche

3 se_7_graphen_und_baeume_III.ppt3 Standard-Technik für Graphen:  "Einfärben" von Knoten  Der Graph wird, den Kanten folgend, durchlaufen und die besuchten Knoten werden eingefärbt.  Wenn ich von einem Knoten nicht weiter komme, liegt er nicht in einem Zyklus und wird gestrichen.  Wenn ich einen neuen Knoten besuche, kann ich nachschauen, ob er bereits eingefärbt wurde.

4 se_7_graphen_und_baeume_III.ppt4 Properties und Methoden für einen Graphen  Konstruktor: new Graph()  Aufbau des Graphen: -Graph.add_node(Node n) -Graph.add_edge(Node source, Node target)  Informationen über den Graphen bekommen: -Node[] getAllNodes() -Boolean isInCycle(Node n) -Boolen hasCycle();  Knotenoperationen: -Node[] nextNodes(Node n) // Direkt von n erreichbaren Knoten)  Konstruktor: -new Node(); -new Node(String content);  Einfärben: -setColor(String color);

5 Verwaltung der Kanten (Adjazenzliste wäre auch möglich, aber hier mal anders) se_7_graphen_und_baeume_III.ppt5 n f1f2f3 Jeder Knoten erhält eine Liste seiner Folgeknoten Methoden der Knoten: void addFollower(node n) Liste getFollowers() f4

6 se_7_graphen_und_baeume_III.ppt6 Implementierung  Bei den Vorüberlegungen hat sich gezeigt, dass wir ein Array mit wachsender Größe brauchen.  Wir wählen dazu die Datenstruktur java.util.vector. import java.util.Vector; public class Node { private Vector followers; private String content; private String color; public void addFollower(Node n) { followers.add(n); } public Vector getFollowers(){ return followers; }

7 se_7_graphen_und_baeume_III.ppt7 Zyklensuche: Intiale Funktion

8 se_7_graphen_und_baeume_III.ppt8 Zyklensuche: Kernfunktion

9 se_7_graphen_und_baeume_III.ppt9 Baumdurchlauf  Ein Baum hat keine Zyklen, deswegen kann man beim Durchlauf auf das Färben verzichten.  Der Baumdurchlauf ist eine Tiefensuche: Es werde immer zuerst die Kinder bis zum Ende verfolgt, dann wird auf das nächste Geschwisterkind übergegangen.

10 se_7_graphen_und_baeume_III.ppt10 Baumdurchlauf Präfix  Eine Operation, die beim ersten Besuch eines Knotens durchgeführt wird, wird als Präfix bezeichnet.

11 se_7_graphen_und_baeume_III.ppt11 Baumdurchlauf Postfix  Eine Operation, die beim letzten Besuch eines Knotens durchgeführt wird, wird als Postfix bezeichnet.

12 se_7_graphen_und_baeume_III.ppt12 Baumdurchlauf Infix  Eine Operation, die beim Wechsel von einem Kind zum nächsten ausgeführt wird (oder wenn gar keine Kinder da sind), wird als Infix bezeichnet.

13 se_7_graphen_und_baeume_III.ppt13 Anwendung Infix: Sortieren über Bäume  Wir bilden spezielle Bäume:  Jeder Knoten hat höchstens 2 Kinder  Die Kinder sind "geordnet" (siehe unten):  Ausgangssituation: 4,1,23,6,4,67,43,32,5,3  soll sortiert werden.  Algorithmus: erste Zahl, wird erster Knoten  Ab diesem Moment hängen wir Knoten unten an, die niedrigeren Knoten links, die höheren Knoten rechts. 4

14 se_7_graphen_und_baeume_III.ppt14 Anwendung Infix: Sortieren über Bäume  Ausgangssituation: 4,1,23,6,67,43,32,5,3  Infix-Durchlauf ergibt geordnete Werte:  1,3,4,5,6,23,32, 43,


Herunterladen ppt "16.08.2014se_7_graphen_und_baeume_III.ppt1 Softwareengineering Graphen und Bäume Teil II Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law."

Ähnliche Präsentationen


Google-Anzeigen