Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Größe: px
Ab Seite anzeigen:

Download "Informatik 11 Kapitel 2 - Rekursive Datenstrukturen"

Transkript

1 Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77

2 Inhaltsverzeichnis I 1 Datenstruktur Schlange Warteschlange als Feld Warteschlange als Liste Die Methode einfuegen() Die Methode informationenausgeben() Die Methode entfernen() 2 Trennung von Struktur und Inhalt 3 Modellierungsaufgabe 4 Datenstruktur Liste 5 Entwurfsmuster Kompositum 6 Datenstruktur Stapel 7 Datenstruktur Schlange 8 Die rekursive Datenstruktur Baum Folie 2/77

3 Inhaltsverzeichnis II Suchen in Binärbäumen Einfügen in Binärbäume Baum und Kompositum Baumdurchlauf Exkurs 1 - Knoten löschen Exkurs 2 - B-Baum 9 Die Datenstruktur Graph Eigenschaften von Graphen Adjazenzmatrix Breitensuche Tiefensuche Adjazenzliste Dijkstra-Alorithmus Folie 3/77

4 2.1 Datenstruktur Schlange Folie 4/77

5 2.1.1 Warteschlange als Feld Übung Warteschlange mit Datenstruktur Feld Implementiere eine Warteschlange mit Hilfe der Datenstruktur Feld, die die abgebildeten Attribute und Methoden besitzt. Folie 5/77

6 Nachteile dieser Implementierung Die Warteschlange besitzt immer eine maximale Anzahl an Elementen (selbst bei sehr hoher Feldgröße). Im Feld gibt es fast immer freie Plätze (Verschwendung von Speicherplatz). Beim Entfernen von Elementen müssen die übrigen Elemente aufrücken (sehr umständlich). Folie 6/77

7 2.1.2 Warteschlange als Liste Objektdiagramm einer Warteschlange Folie 7/77

8 Klassendiagramm der Warteschlange Folie 8/77

9 Erweitertes Klassendiagramm der Warteschlange Folie 9/77

10 2.1.3 Die Methode einfuegen() Folie 10/77

11 Folie 11/77

12 Folie 12/77

13 2.1.4 Die Methode informationenausgeben() Folie 13/77

14 2.1.5 Die Methode entfernen() Folie 14/77

15 Folie 15/77

16 Folie 16/77

17 Kundenwarteschlange Plane eine Warteschlange Kunden. An welchen Stellen unserer Implementierung müssen wir Änderungen vornehmen? Probleme bei dieser Art der Implementierung Die Klasse Patient hat zwei Aufgaben: (A) Verwaltung der Daten (Patientenname) (B) Verwaltung der Referenzen auf die Nachfolger Dies stört bei der Wiederverwendung der WARTESCHLANGE für andere Zwecke (z.b. Druckaufträge). Lösung/Ziel ist es, die Aufgabe (B) in eine eigene Klasse KNOTEN auszulagern. Folie 17/77

18 2.2 Trennung von Struktur und Inhalt Objektdiagramm der Warteschlange Folie 18/77

19 2.2 Trennung von Struktur und Inhalt Klassendiagramm der Warteschlange Folie 19/77

20 2.2 Trennung von Struktur und Inhalt Probleme bei dieser Art der Implementierung Die Klassen WARTESCHLANGE und KNOTEN müssen immer noch wissen, welche Elemente (der Typ der Elemente) sie verwalten. Folie 20/77

21 2.2 Trennung von Struktur und Inhalt Klassendiagramm der Warteschlange Folie 21/77

22 Warteschlange mit Java API import java.util. LinkedList; public class WARTESCHLANGE { private LinkedList <DATENELEMENT > Warteschlange; public WARTESCHLANGE() { Warteschlange = new LinkedList <DATENELEMENT >(); } public void einfuegen( DATENELEMENT neuesdatenelement) { Warteschlange.add( neuesdatenelement); } public DATENELEMENT entfernen() { return Warteschlange. remove(); } public void informationenausgeben() { for(int i = 0; i< Warteschlange.size(); i++) { System.out. print( Warteschlange.get(i). informationenausgeben() + " " ); } System.out. println(); } } Folie 22/77

23 2.3 Modellierungsaufgabe 1 1 Quelle: Abitur Informatik Bayern 2011 Folie 23/77

24 2.3 Modellierungsaufgabe 2 2 Quelle: Abitur Informatik Bayern 2011 Folie 24/77

25 2.3 Modellierungsaufgabe Folie 25/77

26 Erweiterte Anforderungen an die Datenstruktur Wir wollen unsere Datenstruktur erweitern: Elemente sollen an bestimmten Stellen der Warteschlange angefügt und entfernt werden könnten. Dies gilt auch für ganz vorne. Die Warteschlange soll Informationen darüber ausgeben, wie viele Knoten sie beinhaltet. Es soll überprüft werden können, ob sich ein Datenelement in der Warteschlange befindet. Folie 26/77

27 2.4 Datenstruktur Liste Liste Da diese Anforderungen über die an eine Warteschlange hinausgehen, bezeichnen wir die Datenstruktur als einfach verkettete Liste. Folie 27/77

28 2.4 Datenstruktur Liste Operationen auf Zeichenketten Um Zeichenketten (und andere Objekte) miteinander vergleichen zu können gibt es verschiedene Methoden: equals(vergleichswert):boolean: Gibt true zurück, falls Zeichenketten identisch, sonst false (Beispiel: variable.equals( Test );) compareto(vergleichswert):int: Gibt eine ganze Zahl zurück. Dabei entspricht bei [StringA] compareto [StringB]: =0: Beide Strings sind identisch. <0: [StringA] kommt lexikographisch vor [StringB]. >0: [StringB] kommt lexikographisch vor [StringA]. Folie 28/77

29 2.5 Entwurfsmuster Kompositum In fast allen Methoden der Klasse KNOTEN wird eine Fallunterscheidung bezüglich des Nachfolgers (für letzten Knoten) benötigt. Um diese zu umgehen, hat es sich bewährt, eine eigene Klasse ABSCHLUSS zu definieren, die kein Datenelement referenziert, sondern nur das Ende der Liste verwaltet. ABSCHLUSS und KNOTEN sind Unterklassen der Klasse LISTENELEMENT, welche nur die Signaturen der Methoden beinhaltet. Folie 29/77

30 2.5 Entwurfsmuster Kompositum Entwurfsmuster Kompositum Kompositum ist ein Entwurfsmuster (engl. Design Pattern) in der Softwareentwicklung. Diese Entwurfsmuster sind bewährte Lösungsschablonen für wiederkehrende Entwurfsprobleme. In allgemeiner Form sieht dieses Entwurfsmuster so aus: Folie 30/77

31 Folie 31/77

32 2.6 Datenstruktur Stapel Prinzip: Last in First out LiFo (oder wer zuletzt kommt, darf als erster gehen ) Folie 32/77

33 2.6 Datenstruktur Stapel Definition: Eine Datenstruktur heißt Stapel, wenn Elemente nur an einem Ende, der Stapelspitze (top), hinzugefügt oder entfernt werden können. Für Stapel sind die folgenden Operationen definiert: Erzeugen eines leeren Stapels (init) Hinzufügen eines Elements (push) Prüfung, ob ein gegebener Stapel leer ist (isempty) Inspizieren der Stapelspitze (top) Entfernen der Stapelspitze (pop) Folie 33/77

34 2.6 Datenstruktur Stapel Anwendungen: Auswerten von Rechenausdrücken, syntaktische Analyse von Programmen, Bau von Übersetzern, Undo, Aufrufen von Unterprogrammen, Tiefensuche in Graphen,... Folie 34/77

35 2.7 Datenstruktur Schlange Prinzip: First in First out, FiFo (oder wer zuerst kommt, mahlt zuerst ) Folie 35/77

36 Datenstruktur Schlange Definition: Eine Datenstruktur heißt Schlange, wenn Elemente nur an einem Ende (dem Ende der Schlange) angefügt und nur am anderen Ende (dem Kopf der Schlange) entfernt werden können. Für Schlangen sind die folgenden fünf Operationen definiert: Erzeugen einer neuen leeren Schlange (init) Hintenanfügen eines Elements an eine gegebene Schlange (enqueue oder enter bzw. put) Prüfung, ob die Schlange leer ist (isempty) Inspizieren des Schlangenkopfes (front) Entfernen des Schlangenkopfes (dequeue oder remove bzw. get) Folie 36/77

37 Datenstruktur Schlange Anwendungen: Druckaufträge (Druckerwarteschlange), Verwaltung von Prozessaufrufen im Betriebssystem, Hardwareschnittstellen zur seriellen Ein-/Ausgabe (Pufferspeicher z.b. Tastatur),... Folie 37/77

38 2.8 Die rekursive Datenstruktur Baum Folie 38/77

39 2.8 Die rekursive Datenstruktur Baum Folie 38/77

40 2.8 Die rekursive Datenstruktur Baum Folie 38/77

41 2.8 Die rekursive Datenstruktur Baum Baum Aus einer einfach verketteten Liste entsteht ein Baum, indem die Knoten jeweils mehrere Nachfolger haben können und zusätzlich gilt: Genau ein Knoten wird nicht von einem anderen Knoten referenziert. Diesen nennt man Wurzel des Baumes. Alle anderen Knoten werden genau einmal referenziert. Man unterscheidet zwischen inneren Knoten und Blättern. Jeder Knoten lässt sich von der Wurzel aus auf genau einem Weg (über Kanten) erreichen. Ein spezieller Baum ist der Binärbaum. Dieser besitzt Knoten mit höchstens zwei Nachfolgern. Folie 39/77

42 2.8 Die rekursive Datenstruktur Baum Folie 40/77

43 2.8 Die rekursive Datenstruktur Baum Folie 41/77

44 2.8 Die rekursive Datenstruktur Baum Folie 42/77

45 2.8.1 Suchen in Binärbäumen Klasse BINBAUM public DATENELEMENT suchen( String wert) { if(wurzel!= null) return Wurzel.suchen(wert); else return null; } Klasse KNOTEN public DATENELEMENT suchen( String wert) { if( Daten. schluesselistgleich( wert)) return Daten; else if( Daten. schluesselistgroesserals( wert)) { if( LinkerNachfolger!= null) return LinkerNachfolger. suchen( wert); else return null; } else { if( RechterNachfolger!= null) return RechterNachfolger. suchen( wert); else return null; } } Folie 43/77

46 2.8.2 Einfügen in Binärbäume Klasse BINBAUM public void einfuegen( DATENELEMENT daten) { if(wurzel!= null) Wurzel.einfuegen(daten); else Wurzel = new KNOTEN(daten); } Klasse KNOTEN public void einfuegen( DATENELEMENT daten) { if( Daten. istgleich( daten)) {} else if( Daten. istgroesserals( daten)) { if( LinkerNachfolger!= null) LinkerNachfolger. einfuegen( daten); else LinkerNachfolger = new KNOTEN( daten); } else { if( RechterNachfolger!= null) RechterNachfolger. einfuegen( daten); else RechterNachfolger = new KNOTEN( daten); } } Folie 44/77

47 2.8.3 Baum und Kompositum Folie 45/77

48 2.8.3 Baum und Kompositum Folie 46/77

49 2.8.3 Baum und Kompositum Folie 47/77

50 2.8.3 KlasseBaum BINBAUM und Kompositum public DATENELEMENT suchen( String wert) { return Wurzel.suchen(wert); } Klasse KNOTEN public DATENELEMENT suchen( String wert) { if(daten.schluesselistgleich(wert)) return Daten; else if(daten.schluesselistgroesserals(wert)) return LinkerNachfolger. suchen( wert); else return RechterNachfolger. suchen( wert); } Klasse ABSCHLUSS public DATENELEMENT suchen( String wert) { return null; } Folie 48/77

51 2.8.3 KlasseBaum BINBAUM und Kompositum public void einfuegen( DATENELEMENT daten) { Wurzel = Wurzel.einfuegen(daten); } Klasse KNOTEN public void einfuegen( DATENELEMENT daten) { if(daten.istgleich(daten)) {} else if(daten.istgroesserals(daten)) LinkerNachfolger = LinkerNachfolger. einfuegen( daten); else RechterNachfolger = RechterNachfolger. einfuegen( daten); } Klasse ABSCHLUSS public BAUMELEMENT einfuegen( DATENELEMENT daten) { return new KNOTEN( daten); } Folie 49/77

52 2.8.4 Baumdurchlauf Folie 50/77

53 2.8.4 Baumdurchlauf Definition Wenn man alle Elemente eines Baumes ausgeben möchte, muss man sich Strategien überlegen, in welcher Reihenfolge der Baum durchlaufen wird. Der Zugriff auf die einzelnen Knoten eines Baumes ist nur über die Wurzel möglich. Deshalb sind Algorithmen notwendig, die beim Durchlaufen eines Baumes jeden Knoten genau einmal besuchen und Informationen über dessen Datenelement ausgeben. Folgende drei (rekursive) Algorithmen leisten das Gewünschte: Folie 51/77

54 2.8.4 Baumdurchlauf inoder Baumdurchlauf inorder-durchlauf (Reihenfolge: L K R ) Beauftrage den linken Teilbaum des Knotens k mit inorder-durchlauf Besuche den Knoten k selbst Beauftrage den rechten Teilbaum des Knotens k mit inorder-durchlauf Beispiel: Folie 52/77

55 2.8.4 KlasseBaumdurchlauf BINBAUM (Implementierung) public void inorderausgeben() { Wurzel.inorderAusgeben(); } Klasse KNOTEN public void inorderausgeben() { LinkerNachfolger.inorderAusgeben(); Daten.informationAusgeben(); RechterNachfolger.inorderAusgeben(); } Klasse ABSCHLUSS public void inorderausgeben() Folie 53/77 { }

56 2.8.4 Baumdurchlauf preorder Baumdurchlauf preorder-durchlauf (Reihenfolge: K L R) Besuche den Knoten k selbst Beauftrage den linken Teilbaum des Knotens k mit preorder-durchlauf Beauftrage den rechten Teilbaum des Knotens k mit preorder-durchlauf Beispiel: Folie 54/77

57 2.8.4 Baumdurchlauf postorder Baumdurchlauf postorder-durchlauf (Reihenfolge: L R K ) Beauftrage den linken Teilbaum des Knotens k mit postorder-durchlauf Beauftrage den rechten Teilbaum des Knotens k mit postorder-durchlauf Besuche den Knoten k selbst Beispiel: Folie 55/77

58 2.8.5 Exkurs 1 - Knoten löschen Vorgehen beim Löschen - 1 Es gibt drei Fälle, die beim Löschen eines Datenelements eintreten können: Das DATENELEMENT wird von einem Knoten k referenziert, der keine Kinder hat (Nur Abschlüsse als Nachfolger): k wird gelöscht, ein beliebiger Nachfolger (ABSCHLUSS) wird zurückgegeben. Folie 56/77

59 2.8.5 Exkurs 1 - Knoten löschen Vorgehen beim Löschen - 2 Das DATENELEMENT wird von einem Knoten k referenziert, der ein Kind hat: k wird durch das Kind ersetzt. Folie 57/77

60 2.8.5 Exkurs 1 - Knoten löschen Vorgehen beim Löschen - 3 Das DATENELEMENT wird von einem Knoten k referenziert, der zwei Kinder hat: Dann bleibt Knoten k erhalten. Das DATENELEMENT in k wird durch das kleinste DATENELEMENT des rechten Teilbaums (bzw. größte DATENELEMENT des linken Teilbaums) von k ersetzt. Jedes dieser beiden DATENELEMENTe wird von einem Knoten referenziert, der höchstens ein Kind besitzt und daher wie in Fall 1 oder 2 entfernt werden kann. Folie 58/77

61 2.8.6 Exkurs 2 - B-Baum 3 3 Quelle: Haui/My Images: https://commons.wikimedia.org/wiki/file:b-tree-aggregated-example.png Folie 59/77

62 2.9 Die Datenstruktur Graph Folie 60/77

63 2.9.1 Eigenschaften von Graphen Unterschied Baum - Graph Ein Knoten in einem Baum hat höchstens einen Vorgänger - in einem Graphen kann er mehr als einen haben. In einem Baum gibt es keine Zyklen (Pfad, bei dem der Start- und Zielknoten identisch sind). Ein Baum ist ein spezieller Graph. Folie 61/77

64 2.9.1 Eigenschaften von Graphen Definition Ein Graph G = (V,E) besteht aus einer nichtleeren Menge von Knoten V und einer endlichen Menge von Kanten E. Eine Kante verbindet zwei Knoten. Folie 62/77

65 2.9.1 Eigenschaften von Graphen Definition Gerichtung Bei gerichteten Graphen gibt es eine eindeutige Richtung der Kante von einem Startknoten zu einem Zielknoten. Bei ungerichteten Graphen gilt die Verbindung für beide Richtungen. Folie 63/77

66 2.9.1 Eigenschaften von Graphen Definition Gewichtung Bei einem gewichteten Graph wird jeder Kante ein Wert zugeordnet Bei einem ungewichteten Graph besitzen die Kanten keine Werte. Folie 64/77

67 2.9.1 Eigenschaften von Graphen Definition Zusammenhängend 1 Ungerichteter Graph: Ein ungerichteter Graph ist zusammenhängend, wenn von jedem Knoten zu jeden anderen Knoten mindestens ein Pfad existiert. Dieser Graph ist zusammenhängend. Ohne Kante zwischen A und D ist er nicht zusammenhängend! Folie 65/77

68 2.9.1 Eigenschaften von Graphen Definition Zusammenhängend 2 Gerichteter Graph: Ein gerichteter Graph ist (stark) zusammenhängend, falls es von jedem Knoten aus einen gerichteten Weg zu jeden anderen Knoten im Graph gibt. Dieser Graph ist (stark) zusammenhängend. Ohne Kante zwischen E und C ist er nicht (stark) zusammenhängend! Da dieser Graph aber als ungerichteter Graph zusammenhängend wäre, ist er (schwach) zusammenhängend. Folie 66/77

69 2.9.1 Eigenschaften von Graphen Teiler Ein Graph hat die Zahlenwerte 1 bis 9 als Knoten. Über die Beziehung ist echter Teiler von sind diese gerichtet miteinander verbunden. 1 Wie viele Kanten gibt es? Zeichne den Graphen 2 Welcher Knoten muss entfernt werden, damit der Graph nicht mehr zusammenhängend ist? 3 Wie ändert sich der Graph, wenn die Beziehung ist Teiler von lautet? Folie 67/77

70 2.9.1 Eigenschaften von Graphen Klassendiagramm Folie 68/77

71 2.9.2 Adjazenzmatrix Definition Für die weitere Betrachtung von Algorithmen auf der Datenstruktur Graph bietet sich die einfachere Umsetzung mittels Adjazenzmaritx an. Dabei werden die Kanteninformationen in der GRAPH-Klasse belassen und nur die Knoten-Informationen in der Klasse KNOTEN ausgelagert. In Java kann man die Kanteninformationen über ein zweidimensionales Feld definieren. Folie 69/77

72 2.9.2 Adjazenzmatrix Folie 70/77 von nach A B C D E F G A B C 10 8 D 2 E 5 6 F G

73 2.9.2 Adjazenzmatrix von nach A B C D E F A 9 3 B 5 C 4 D 8 E 1 5 F 2 Folie 71/77

74 2.9.2 Adjazenzmatrix Klassendiagramm Folie 72/77

75 2.9.2 Adjazenzmatrix Folie 73/77

76 2.9.3 Breitensuche Siehe Folien - Breitensuche Warteschlange.pdf Folie 74/77

77 2.9.4 Tiefenensuche Siehe Folien - Tiefensuche Rekursiver Aufruf.pdf und Tiefensuche Stack.pdf Folie 75/77

78 2.9.5 Adjazenzliste Folie 76/77

79 2.9.6 Dijkstra-Alorithmus Siehe Folien - Dijkstra Prioritätswarteschlange.pdf Folie 77/77

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?

Mehr

8 Baum in perfekter Komposition

8 Baum in perfekter Komposition 8 Baum in perfekter Komposition Die Implementierung des Binärbaums im letzten Kapitel wird mithilfe des Entwurfsmusters Kompositum optimiert. Knoten und Abschluss Bei der einfach verketteten Liste wurde

Mehr

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale

Mehr

Struktur am Beispiel einer Liste

Struktur am Beispiel einer Liste Struktur am Beispiel einer 1 Einfügen(neues element ) Aktiv Wartend knoten knoten 2 Einfügen(neues element ) Aktiv Wartend knoten knoten 3 Einfügen(neues element ) Aktiv Wartend knoten knoten 4 Aha, ich

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.

Mehr

Breiten- und Tiefensuche in Graphen

Breiten- und Tiefensuche in Graphen Breiten- und Tiefensuche in Graphen Inhalt Theorie. Graphen. Die Breitensuche in der Theorie am Beispiel eines ungerichteten Graphen. Die Tiefensuche in der Theorie am Beispiel eines gerichteten Graphen

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

Graphen: Datenstrukturen und Algorithmen

Graphen: Datenstrukturen und Algorithmen Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.

Mehr

U08 Entwurfsmuster (II)

U08 Entwurfsmuster (II) U08 Entwurfsmuster (II) Inhalt der Übung Diskussion und Implementierung von Entwurfsmustern Übungsaufgaben Aufgabe 1 (Queue) Gegeben ist das folgende Analysemodell einer Warteschlange (Queue): Eine Warteschlange

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Binärbäume. Prof. Dr. E. Ehses, 2014 1

Binärbäume. Prof. Dr. E. Ehses, 2014 1 Binärbäume Grundbegriffe der Graphentheorie Bäume und Ihre Anwendungen Unterschiedliche Darstellungen von Bäumen und Binärbäumen Binärbäume in Java Rekursive Traversierung von Binärbäumen Ebenenweise Traversierung

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Stapel (Stack, Keller)

Stapel (Stack, Keller) Stapel (Stack, Keller) Eine wichtige Datenstruktur ist der Stapel. Das Prinzip, dass das zuletzt eingefügte Element als erstes wieder entfernt werden muss, bezeichnet man als LIFO-Prinzip (last-in, first-out).

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume 1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Datenstrukturen. einfach verkettete Liste

Datenstrukturen. einfach verkettete Liste einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten

Mehr

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

Mehr

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks)

Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks) Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks) Übungsziele: Skript: 1. Definieren einer dynamischen Datenstruktur 2. Dynamische Speicher Speicherallokation 3. Implementierung eines

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Datenstrukturen: Anordnung von Daten, z.b. als Liste (d.h. in bestimmter Reihenfolge) Beispiel: alphabetisch sortiertes Wörterbuch... Ei - Eibe - Eidotter... als Baum (d.h.

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

1. Aufgabe (6 Punkte): Java-Programmierung (Arrays)

1. Aufgabe (6 Punkte): Java-Programmierung (Arrays) Der folgende Mitschrieb wurde von Prof. Alexa am 16.07.2008 als Probeklausur in der MPGI2 Vorlesung gezeigt und wurde auf http://www.basicinside.de/2008/node/94 veröffentlicht. Die Abschrift ist unter

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

Mehr

Verkettete Datenstrukturen: Bäume

Verkettete Datenstrukturen: Bäume Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x), Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen Der Tragödie IV. Theyl Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 8 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding:

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

I Die rekursive Datenstruktur Liste

I Die rekursive Datenstruktur Liste I Die rekursive Datenstruktur Liste 1 Einführung der Datenstruktur Schlange Aus dem Vorjahr ist das Feld vertraut als eine Datenstruktur, mit der mehrere gleichartige Objekte verwaltet werden können. In

Mehr

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

1. Grundlegende Konzepte in Java (6 Punkte)

1. Grundlegende Konzepte in Java (6 Punkte) 1. Grundlegende Konzepte in Java (6 Punkte) a) Welches der folgenden Literale ist korrekt und wenn ja, von welchem Typ ist es? "true" nicht korrekt X korrekt vom Typ String 'true' X nicht korrekt korrekt

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

EndTermTest PROGALGO WS1516 A

EndTermTest PROGALGO WS1516 A EndTermTest PROGALGO WS1516 A 14.1.2016 Name:................. UID:.................. PC-Nr:................ Beachten Sie: Lesen Sie erst die Angaben aufmerksam, genau und vollständig. Die Verwendung von

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

equals und hashcode SortedSet NavigableSet Assoziative Container Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32

equals und hashcode SortedSet NavigableSet Assoziative Container Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32 Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32 equals und hashcode SortedSet NavigableSet Assoziative Container 2 / 32 HashSet mit eigener Klasse Wie kann man einen

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 3 Einführung in das objektorientierte Programmier-Paradigma 3 Einführung in das objektorientierte Programmier-Paradigma 3.1.1 Top-down structured design 3.1.2 Data-driven design 3.1.3 Object-oriented design

Mehr

HTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen.

HTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen. HTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen OOPM, Ralf Lämmel (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 562 Motivation abstrakter

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Inhalte Informatik. I1 Grundprinzip des objektorientierten Modellierens I3 Modellieren von Netzwerkanwendungen

Inhalte Informatik. I1 Grundprinzip des objektorientierten Modellierens I3 Modellieren von Netzwerkanwendungen Inhalte Informatik I1 Grundprinzip des objektorientierten Modellierens I3 Modellieren von Netzwerkanwendungen II.0 Grundlegende Programmstrukturen und Algorithmen Sortier- und Suchalgorithmen auf Arrays

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 11. Dynamische Datenstrukturen 11.1 Lineare Liste Eine lineare Liste (auch einfach verkettete Liste ) ist eine Art Array mit flexibler Länge.

Mehr

Algorithmen und Datenstrukturen SS09

Algorithmen und Datenstrukturen SS09 Foliensatz 8 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 29 TU Ilmenau Seite / 54 Binärbäume TU Ilmenau Seite 2 / 54 Binäre Bäume Bäume und speziell

Mehr

Teil XII. Datenstrukturen: Bäume, Stacks und Queues. Scientific Computing in Computer Science, Technische Universität München

Teil XII. Datenstrukturen: Bäume, Stacks und Queues. Scientific Computing in Computer Science, Technische Universität München Teil XII Datenstrukturen: Bäume, Stacks und Queues IN8008, Wintersemester 2011/2012 251 Stacks (Kellerspeicher/Stapel) Funktioniert wie ein natürlicher Stapel (z.b. Papierstapel auf dem Schreibtisch) Elemente

Mehr

Bäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

Bäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Bäume 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Inhalt Grundbegriffe: Baum, Binärbaum Binäre Suchbäume (Definition) Typische Aufgaben Suchaufwand Löschen allgemein, Methode Schlüsseltransfer

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 7. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@informatik.uni-leipzig.de aufbauend auf den Kursen der letzten Jahre von E. Rahm, G. Heyer,

Mehr

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E. Das Komplement Ḡ = (V, ( V ) \ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E. Ein Graph H = (V, E )

Mehr

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog 10.Klasse: Themenschwerpunkt I: Datenbanken Datenbanken o Einsatzbereiche von Datenbanken o Verwaltung von großen Datenmengen o Probleme aus dem Alltag in Datenbanken abbilden o Relationale Datenbanksysteme

Mehr

Klausur Informatik B April Teil I: Informatik 3

Klausur Informatik B April Teil I: Informatik 3 Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung

Mehr

Kodieren Von Graphen

Kodieren Von Graphen Kodieren Von Graphen Allgemeine Anwendungen: Routenplaner Netzpläne Elektrische Schaltungen Gebäudeerkennung aus Luftaufnahmen Definitionen:? Graph Ein Graph G besteht aus einem geordneten Paar G = (V,E)

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass: OOP (Java), 3. Syntaxdiagramme und Grammatikregeln 1/32 Objektorientierte Programmierung Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass Martin-Luther-Universität Halle-Wittenberg

Mehr

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache

Mehr

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10 Binäre Bäume Bäume gehören zu den wichtigsten Datenstrukturen in der Informatik. Sie repräsentieren z.b. die Struktur eines arithmetischen Terms oder die Struktur eines Buchs. Bäume beschreiben Organisationshierarchien

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Elementare Datenstrukturen für dynamische Mengen Stapel & Warteschlangen Verkettete Listen Bäume Anwendungsbeispiel:

Mehr

Informatik I 2. Kapitel. Elementare Datenstrukturen. Datenstrukturen. Datenstrukturen. Rainer Schrader. 28. Mai 2008

Informatik I 2. Kapitel. Elementare Datenstrukturen. Datenstrukturen. Datenstrukturen. Rainer Schrader. 28. Mai 2008 Informatik I. Kapitel Rainer Schrader Elementare Zentrum für Angewandte Informatik Köln 8. Mai 008 / / bisher haben wir nur Arrays verwendet, Gliederung Einführung abstrakte Datentypen Listen Stacks und

Mehr

Name: Seite 1. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Name: Seite 1. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Name: Seite 1 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie wird bei der Zusicherungsmethode die Zusicherung genannt, die vor Eintritt

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten Gliederung Zusammenhang von Graphen Stark Zusammenhängend K-fach Zusammenhängend Brücken Definition Algorithmus zum Finden von Brücken Anwendung Zusammenhangskomponente Definition Wichtige Aussagen und

Mehr

Grundwissen Informatik Q11/12 Fragenkatalog

Grundwissen Informatik Q11/12 Fragenkatalog 12_Inf_GrundwissenInformatik_Opp.doc 1 Grundwissen Informatik Q11/12 Fragenkatalog 11/2 Aufgabengebiet 1: Graphen, Wege durch Graphen: 1. Durch welche Bestandteile wird ein Graph festgelegt? 2. Nenne verschiedene

Mehr

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Wasist das? Maximaler Fluss Minimaler Schnitt Warumtut man das? Logistische

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein

Mehr

Einführung in (Binäre) Bäume

Einführung in (Binäre) Bäume edeutung und Ziele inführung in (inäre) äume Marc Rennhard http://www.tik.ee.ethz.ch/~rennhard rennhard@tik.ee.ethz.ch äume gehören ganz allgemein zu den wichtigsten in der Informatik auftretenden atenstrukturen,

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische

Mehr

Institut für Programmierung und Reaktive Systeme 27. Mai Programmieren II. 12. Übungsblatt

Institut für Programmierung und Reaktive Systeme 27. Mai Programmieren II. 12. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 27. Mai 206 Programmieren II 2. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern

Mehr

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Bearbeitungszeit: 270 Minuten Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch

Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch verschiedene Datenstrukturen: lineare Datenstrukturen: Array,

Mehr

Graphen und Bäume. A.1 Graphen

Graphen und Bäume. A.1 Graphen Algorithmen und Datenstrukturen 96 A Graphen und Bäume A.1 Graphen Ein gerichteter Graph (auch Digraph) G ist ein Paar (V, E), wobei V eine endliche Menge und E eine Relation auf V ist, d.h. E V V. V heißt

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen

Mehr

10. Kapitel (Teil1) BÄUME GRUNDLAGEN. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm

10. Kapitel (Teil1) BÄUME GRUNDLAGEN. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm 10. Kapitel (Teil1) BÄUME GRUNDLAGEN Algrithmen & Datenstrukturen Prf. Dr. Wlfgang Schramm Übersicht 1 1. Einführung 2. Algrithmen 3. EigenschaCen vn Prgrammiersprachen 4. Algrithmenparadigmen 5. Suchen

Mehr