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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 10. Kapitel (Teil1) BÄUME GRUNDLAGEN Algrithmen & Datenstrukturen Prf. Dr. Wlfgang Schramm

2 Übersicht 1 1. Einführung 2. Algrithmen 3. EigenschaCen vn Prgrammiersprachen 4. Algrithmenparadigmen 5. Suchen & SrLeren 6. Hashing 7. Kmplexität vn Algrithmen 8. Abstrakte Datentypen (ADT) 9. Listen 10. Bäume 11. Graphen

3 Lernziele des Kapitels 2 2 Verstehen, was ein Baum (in der InfrmaLk) ist? Kennenlernen vn verschiedenen Baumarten. ADT Baum (Tree) kennenlernen. Den ADT Tree mit seinen verschiedenen OperaLnen in Java implemenleren können. Spezielle Ausprägung vn Bäumen kennenlernen.

4 Inhalt 3 1. Einführung 2. Bäume Begriffe, DefiniLn 3. Binäre Bäume, binäre Suchbäume 4. Balancierte Bäume n AVL- Bäume n B- Bäume 5. Weitere Bäume 6. SrLeren mit Bäumen: Heapsrt

5 Anwendungen vn Bäumen 5 Familienstammbuch Ergebnisse eines Sprkurniers ( KO- System ) Organigramm Gliederung eines Buches Datei- Struktur im Rechner Maximum- BesLmmung rekursiv ArithmeLscher Ausdruck

6 Baum Begriffe 1/7 6 Dynamische Datenstruktur Anzahl der Elemente beliebig: 0.. FunkLnen Erzeugen à leerer Baum Einfügen à Baum mit einem Element mehr Rausnehmen à Baum mit einem Element weniger Nachschauen, b der Baum leer ist à Baum unverändert Linken (rechten) Teilbaum bilden à (neuer) Baum Visualisierung

7 Baum Begriffe 2/7 7 Hierarchisches Strukturierungs- und OrganisaLnsprinzip. Verallgemeinerte Liste Mehr als ein Nachflger erlaubt Spezieller Graph Zusammenhängender, zyklenfreier Graph

8 Baum Begriffe 3/7 8 Baum = Menge vn Knten und Kanten, die besndere EigenschaCen aufweisen. Jeder Baum besitzt einen ausgezeichneten Knten, die Wurzel (rt); Ausnahme: leerer Baum. Jeder Knten, außer der Wurzel ist durch genau eine Kante mit seinem Vaterknten (parent, Synnyme: Muker, Elternknten, Vrgänger) verbunden. Er wird Kind (child, Synnyme: Tchter, Shn, Nachflger) dieses Kntens genannt. Ein Knten hne Kinder heißt Bla/ (leaf), alle anderen Knten nennt man innere Knten.

9 Baum Begriffe 4/7 9 Vater Kind

10 Baum Begriffe 5/7 10 Ein Pfad (path) in einem Baum ist eine Flge vn unterschiedlichen Knten, in der die aufeinander flgenden Knten durch Kanten miteinander verbunden sind. Zwischen jedem Knten und der Wurzel gibt es genau einen Pfad. Das bedeutet dass ein Baum zusammenhängend ist und es keine Zyklen gibt. Das Niveau (level) eines Kntens ist die Länge des Pfades vn der Wurzel zu diesem Knten. Die Höhe (height) eines Baumes entspricht dem größten level eines Blakes + 1. Es gibt verschiedene Arten vn Bäumen. Sie können dadurch charakterisiert sein, dass jeder Knten eine beslmmte Anzahl vn direkten Kindern haben muss und wie die Kinder angerdnet sind.

11 Baum Begriffe 6/7 11 Niveau/Level 0 Höhe 4 Pfad 1 Unterbaum 2 3

12 Baum Begriffe 7/7 12 Bei Vrgabe der Anzahl vn Kindern: n- ärer Baum (n- ary tree). Sind die Kinder jedes Kntens in einer beslmmten Reihenflge gerdnet: gerdneter Baum (rdered tree). Binärer Baum = gerdneter Baum, bei welchem jeder Knten maximal 2 Kinder hat. Beispiel: arithmelscher Ausdruck als Baum 8 + (5 3) * *

13 Visualisierung 1/2 13 Leerer Baum Nicht- leerer Baum Baum Baum Wert Wert Wert Wert Wert

14 Visualisierung 2/2 14 der einfacher s der s

15 Tree OperaLnen 15 Binärer Baum (Tree) als ADT: OperaNnen / FuncNns (Auswahl): n insert - fügt ein neues Element in den Baum ein n n n insert: Element Tree Tree remve enwernt ein Element aus dem Baum remve: Element Tree Tree empty erzeugt einen leeren neuen Baum empty: Tree isempty - liefert true genau dann, wenn der Baum leer ist isempty: Tree blean

16 16 Baumknten etwas allgemeiner Typische verwendete Datentypen für die ImplemenLerung Wert Ein Mehrere Werte und Kinder Wert Wert Wert und unbeschränkt viele Kinder Keine Werte in inneren Knten und spezieller Blatt- Datentyp Wert

17 Tree ImplemenLerung 17 Kntenklasse class TreeNde {// Nde f a binary tree int elem; TreeNde left; TreeNde right; public TreeNde (int i) { elem = i; left = right = null; } public TreeNde getleft () { return left; } public TreeNde getright () { return right; } public int getelement () { return elem; } public vid setleft (TreeNde n) { left = n; } public vid setright (TreeNde n) { right = n; } public vid setelement (int e) { elem = e; }

18 Tree ImplemenLerung (allg.) 18 Kntenklasse class TreeNde {// Nde f a binary tree Element elem; TreeNde left; TreeNde right; public TreeNde (Element i) { elem = i; left = right = null; } public TreeNde getleft () { return left; } public TreeNde getright () { return right; } public Element getelement () { return elem; } public vid setleft (TreeNde n) { left = n; } public vid setright (TreeNde n) { right = n; } public vid setelement (Element e) { elem = e; }

19 Algrithmen zur Traversierung 1/2 20 Inrder (Zwischenrdnung) Durchlauf Zuerst wird der linke Teilbaum besucht, dann der Knten selbst und anschließend der rechte Teilbaum. Prerder (Vrrdnung) Durchlauf Zuerst wird der der Knten selbst besucht, dann linke Teilbaum und anschließend der rechte Teilbaum. Pstrder (Nachrdnung) Durchlauf Zuerst wird der linke Teilbaum besucht, dann der rechte Teilbaum und anschließend der Knten selbst. Levelrder Durchlauf (auch: breadth- first search) Zuerst werden alle Knten auf demselben Niveau besucht, dann wird auf das nächste Niveau gewechselt.

20 Algrithmen zur Traversierung 2/2 21 A B C D E F G Inrder Durchlauf D B E A F C G Prerder Durchlauf A B D E C F G Pstrder Durchlauf D E B F G C A Levelrder Durchlauf A B C D E F G

21 Traversieren vn Bäumen: Inrder Start: wurzel 7 linker Unterbaum (Wurzel 4) linker Unterbaum (Wurzel 1) linker Unterbaum (null) Wurzel 1 rechter Unterbaum (null) Wurzel 4 rechter Unterbaum (Wurzel 6) linker Unterbaum (null) Wurzel 6 rechter Unterbaum (null) Wurzel 7 rechter Unterbaum (Wurzel 9) linker Unterbaum (Wurzel 8) linker Unterbaum (null) Wurzel 8 rechter Unterbaum (null)

22 Traversieren vn Bäumen: Prerder Start: wurzel 7 Wurzel 7 linker Unterbaum (Wurzel 4) Wurzel 4 linker Unterbaum (Wurzel 1) Wurzel 1 linker Unterbaum (null) rechter Unterbaum (null) rechter Unterbaum (Wurzel 6) Wurzel 6 linker Unterbaum (null) rechter Unterbaum (null) rechter Unterbaum (Wurzel 9) Wurzel 9 linker Unterbaum (Wurzel 8) Wurzel 8 linker Unterbaum (null)

23 Algrithmus - Inrder 24 Inrder (k) Eingabe: Knten k eines binären Baums mit Verweis auf linken (k.lec) und rechten (k.right) Teilbaum swie dem Element k.elem. Inrder (k.lec); // besuche den linken Teilbaum Verarbeite k.elem; Inrder (k.right); // besuche den rechten Teilbaum

24 Algrithmus - Prerder 25 Prerder (k) Eingabe: Knten k eines binären Baums mit Verweis auf linken (k.lec) und rechten (k.right) Teilbaum swie dem Element k.elem. Verarbeite k.elem; Prerder (k.lec); // besuche den linken Teilbaum Prerder (k.right); // besuche den rechten Teilbaum

25 Prerder Prgramm 26 private vid printprerder (TreeNde n) { if (n!= null) {// tree nt empty println(n.getelement()); printprerder (n.getleft()); printprerder (n.getright()); } }

26 Algrithmus - Pstrder 27 Pstrder (k) Eingabe: Knten k eines binären Baums mit Verweis auf linken (k.lec) und rechten (k.right) Teilbaum swie dem Element k.elem. Pstrder (k.lec); // besuche den linken Teilbaum Pstrder (k.right); // besuche den rechten Teilbaum Verarbeite k.elem;

27 Algrithmus - Levelrder 28 Levelrder (k) Eingabe: Knten k eines binären Baums mit Verweis auf linken (k.lec) und rechten (k.right) Teilbaum swie dem Element k.elem. queue := leere Warteschlange; // vm Typ Queue enter (k, q); // (aktuelle) Wurzel in queue aufnehmen while nt isempty(q) d Knten n := leave (q); Verarbeite n.elem; enter (n.lec, q); // linken Shn in queue aufnehmen enter (n.right, q); // rechten Shn in queue aufnehmen d

28 Suchbäume 1/2 29 Bäume bisher: hierarchische RepräsentaLn und OrganisaLn vn Daten. WichLgstes Einsatzgebiet vn Bäumen: Unterstützung einer effeklven Suche. Vraussetzung für den Einsatz zum beim Suchen: Schlüsselwerte in den Knten. Dann ist es möglich Suchbäume aufzubauen. Wir werden speziell binäre Suchbäume betrachten.

29 Gerdneter Baum 30 7 x Werte < Werte > 7

30 Suchbäume 2/2 31 EigenschaVen binärer Suchbäume Für jeden inneren Knten k gilt: Der Knten k enthält einen Schlüsselwert k.key. Alle Schlüsselwerte in linken Teilbaum k.lec sind kleiner als k.key. Alle Schlüsselwerte in rechten Teilbaum k.right sind größer als k.key. Die Elemente in einem Suchbaum sind nach ihrem Schlüsselwert angerdnet. Auf den Schlüsseln der Elemente ist eine ttale Ordnung definiert. Es wird eine VergleichsperaLn (cmparet) für die Schlüssel bereit gestellt.

31 Binärbaum - Einfügen 32 insert D F C I A E G J nde D parent Finden der Einfügepsitin: Wenn der Baum leer ist, wird der einzufügende Knten die neue Wurzel. Wenn schn Knten im Baum sind, suchen des Elternkntens des neuen Elements.

32 33 public blean insert (Element i) { TreeNde parent = null; TreeNde child = rt; Binärbaum insert 1/2 Die Klasse Element stellt eine Methde cmparet zur Verfügung. Diese liefert als Ergebnis: 0, wenn beide Elemente gleich sind < 0, wenn das 1. Element < 2. Element ist > 0, wenn das 1. Element > 2. Element ist while (child!= null) { // at least 1 nde in tree } parent = child; if (i.cmparet(child.getelement()) == 0) return false; // element already in tree, i is nt inserted else if (i.cmparet(child.getelement()) < 0) child = child.getleft(); // insert in left tree else child = child.getright(); // insert in left tree

33 Binärbaum insert 2/2 34 // parent nde fund if (parent == null) // empty tree -> insert first nde rt = new TreeNde (i); else if (i.cmparet(parent.getelement()) < 0) parent.setleft(new TreeNde(i)); // insert left frm parent else parent.setright(new TreeNde(i)); // insert left frm parent } } return true; // i successfully inserted

34 Binärbaum Löschen 1/2 35 Löschen des Kntens k Fallunterscheidung Zuerst wird der der Elternknten vn k beslmmt (sfern es ihn gibt). a) Der Knten k ist ein Blak Es muss nur der Elternknten (parent) beslmmt werden und drt die Referenz auf k enwernt werden. b) Der Knten k besitzt nur ein Kind (child) Im Elternknten wird die Referenz auf das Kind ersetzt durch die Referenz auf das Kind vn k. c) Der Knten ist ein innerer Knten, d.h. er hat zwei Kinder. Dann gibt es 2 Möglichkeiten: i. Der Knten k wird ersetzt durch den am weitesten rechts stehenden Knten des linken Teilbaums, denn dieser ist in der SrLerreihenflge der nächste Knten. ii. Der Knten k wird ersetzt durch den am weitesten links stehenden Knten des rechten Teilbaums, denn dieser ist in der SrLerreihenflge der nächste Knten.

35 Binärbaum Löschen 2/2 36 Ersetzen des Kntens: Austausch der Daten der Knten n einfach, aber u.u. viel zu kpieren. Aktualisieren der Referenzen der Knten n Vermeidung aufwändigen Kpierens, das fehlerträchlg sein kann (bei flachen Kpien). n Bei balancierten Bäumen müssen auch immer wieder Referenzen aktualisiert werden. Dazu ist dies eine gute Vrbereitung.

36 Binärbaum Löschalgrithmus 1/2 37 RemveNde (T, x) Eingabe: Baum T, Schlüssel x, des zu löschenden Elements. k := search (T, x); // liefert Knten k mit Schlüssel x im Baum T if k == null then return fi; // x nicht im Baum if k == T.rt // Snderfall: Wurzel sll gelöscht werden if k.lec == null then T.rt := k.right; else if k.right == null then T.rt := k.lec; else child := größtes Element im linken Teilbaum vn k (d.h. vn k.lec); ersetze k durch child; fi

37 38 Binärbaum Löschalgrithmus 2/2 else // Nrmaler Knten sll gelöscht werden if k.lec == null then p := parent(k); // merke den Elternknten if k ist linkes Kind vn p then p.lec := k.right; else p.right := k.right; fi else if k.right == null then if k ist linkes Kind vn p then p.lec := k.lec; else p.right := k.lec; fi else child := größtes Element im linken Teilbaum vn k (d.h. vn k.lec); ersetze k durch child; fi fi

38 Binärbaum Löschen/Fälle 1/2 39 remve F F nde tmp C I A E G J D H child E C I Löschen des Wurzelkntens A D G J H

39 Binärbaum Löschen/Fälle 2/2 40 remve D F parent nde D I A E G J C H tmp F child C I Löschen eines inneren Kntens A E G J H

40 Kmplexität der OperaLnen 1/2 41 Suchen, Einfügen, Löschen Feststellung: es wird jeweils nur ein Pfad vn der Wurzel bis zum entsprechenden Knten bearbeitet. Der Aufwand wird beslmmt durch die Höhe des Baums die maximale Höhe h, die der Baum erreichen kann, beslmmt die Kmplexität der OperaLnen, d.h. ist gleich O(h). Die Einfügereihenflge der Elemente beslmmt das Aussehen des Baums, d.h. dieselbe Menge vn Elementen führt bei unterschiedlicher Eingabereihenflge zu unterschiedlichen Bäumen. Beispiel: A, C, E, F, G, H, I und F, C, H, A, E, G, I

41 Kmplexität der OperaLnen 2/2 42 Welche Höhe kann ein Baum mit n Knten erreichen? Im schlechtesten Fall: Baum entartet zu einer Liste h = n. Im besten Fall: Jeder innere Knten hat immer 2 Nachflger auf Level 0 gibt es einen Knten, auf Level 1 gibt es 2 Knten, auf Level 2 gibt es 4 Knten etc. auf Level k gibt es 2 k Knten. D.h. ein Baum der Höhe k+1 (wenn Level = k) kann k k Knten fassen. Sind n Knten in einem slchen Baum, dann ist die Höhe h = lg 2 n. Suchbäume mit lgarithmischer Höhe nennt man ausgeglichene der balancierte Bäume. Ein Baum heißt ausgeglichen, wenn bei einer gegebenen Zahl n vn Elementen die Höhe möglichst klein ist.

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

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

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

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

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

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

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein. Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen

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

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

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

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

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

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

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

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

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

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

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

2 Java: Bäume. 2.1 Implementierung von Bäumen. 2.2 Implementierung eines binären Suchbaums. 2.3 Traversierung von Bäumen

2 Java: Bäume. 2.1 Implementierung von Bäumen. 2.2 Implementierung eines binären Suchbaums. 2.3 Traversierung von Bäumen 2 2 Java: Bäume 2.1 Implementierung von Bäumen 2.2 Implementierung eines binären Suchbaums 2.3 Traversierung von Bäumen 2.4 Implementierung von Heapsort 19 Teil II Java: Bäume Überblick Implementierung

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

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

Tutorium Algorithmen & Datenstrukturen

Tutorium Algorithmen & Datenstrukturen June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten

Mehr

Beispielblatt 2 186.813 VU Algorithmen und Datenstrukturen 1 VU 6.0

Beispielblatt 2 186.813 VU Algorithmen und Datenstrukturen 1 VU 6.0 Beispielblatt 2 186.813 VU Algorithmen und Datenstrukturen 1 VU 6.0 25. September 2013 Aufgabe 1 Gegeben sei ein binärer Suchbaum mit Werten im Bereich von 1 bis 1001. In diesem Baum wird nach der Zahl

Mehr

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen 9.4 Binäre Suchbäume Erweiterung: Einfügen an der Wurzel Standardimplementierung: Der neue Schlüssel wird am Ende des Suchpfades angefügt (natürlich, weil zuerst festgestellt werden muss, ob der Schlüssel

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. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

Suchen und Sortieren

Suchen und Sortieren (Folie 69, Seite 36 im Skript) 5 6 1 4 Als assoziatives Array geeignet Schlüssel aus geordneter Menge Linke Kinder kleiner, rechte Kinder größer als Elternknoten Externe und interne Knoten Externe Knoten

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

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

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

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN RALF HINZE Institut für Informatik III Universität Bonn Email: ralf@informatik.uni-bonn.de Homepage: http://www.informatik.uni-bonn.de/~ralf Februar, 2001 Binäre Suchbäume

Mehr

6 Baumstrukturen. Formale Grundlagen der Informatik I Herbstsemester 2012. Robert Marti

6 Baumstrukturen. Formale Grundlagen der Informatik I Herbstsemester 2012. Robert Marti 6 Baumstrukturen Formale Grundlagen der Informatik I Herbstsemester 2012 Robert Marti Vorlesung teilweise basierend auf Unterlagen von Prof. emer. Helmut Schauer Beispiel: Hierarchisches File System 2

Mehr

Binäre Suchbäume. Ein Leitprogramm von Timur Erdag und Björn Steffen

Binäre Suchbäume. Ein Leitprogramm von Timur Erdag und Björn Steffen Binäre Suchbäume Ein Leitprogramm von Timur Erdag und Björn Steffen Inhalt: Bäume gehören zu den bedeutendsten Datenstrukturen in der Informatik. Dieses Leitprogramm gibt eine Einführung in dieses Thema

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

Nachtrag zu binären Suchbäumen

Nachtrag zu binären Suchbäumen Nachtrag zu binären Suchbäumen (nicht notwendigerweise zu AVL Bäumen) Löschen 1 3 2 10 4 12 1. Fall: Der zu löschende Knoten ist ein Blatt: einfach löschen 2. Fall: Der zu löschende Knoten hat ein Nachfolgeelement

Mehr

DATENSTRUKTUREN UND ZAHLENSYSTEME

DATENSTRUKTUREN UND ZAHLENSYSTEME DATENSTRUKTUREN UND ZAHLENSYSTEME RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: ralf@cs.uu.nl Homepage: http://www.cs.uu.nl/~ralf/ March, 2001 (Die Folien finden

Mehr

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

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

Vorname:... Matrikel-Nr.:... Unterschrift:...

Vorname:... Matrikel-Nr.:... Unterschrift:... Fachhochschule Mannheim Hochschule für Technik und Gestaltung Fachbereich Informatik Studiengang Bachelor of Computer Science Algorithmen und Datenstrukturen Wintersemester 2003 / 2004 Name:... Vorname:...

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

Grundlagen der Programmierung 2. Bäume

Grundlagen der Programmierung 2. Bäume Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)

Mehr

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

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

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen: 6 Partiell geordnete binäre Bäume: Heap (Haufen) Motivation für manchen Anwendungen nur partielle Ordnung der Elemente statt vollständiger nötig, z.b. - Prioritätsschlange: nur das minimale (oder maximale)

Mehr

Kapitel 9 Suchalgorithmen

Kapitel 9 Suchalgorithmen Kapitel 9 Suchalgorithmen Technische Universität München Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für

Mehr

Gegeben Zieladresse, finde Nachbarknoten, an den Paket zu senden ist ("Routing-Tabelle")

Gegeben Zieladresse, finde Nachbarknoten, an den Paket zu senden ist (Routing-Tabelle) 8 Digitalbäume, Tries,, Suffixbäume 8.0 Anwendungen Internet-outer egeben Zieladresse, finde Nachbarknoten, an den Paket zu senden ist ("outing-tabelle") 3 network addr Host id 00 0000 000 0 00 0 0000

Mehr

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Assistenten Brian Amberg Andreas Forster Tutoren Simon Andermatt Lukas Beck Webseite http://informatik.unibas.ch/lehre/hs10/cs101/index.html

Mehr

Sortierte Folgen 250

Sortierte Folgen 250 Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

RWTH Aachen, Lehrstuhl für Informatik IX Kapitel 3: Suchen in Mengen - Datenstrukturen und Algorithmen - 51

RWTH Aachen, Lehrstuhl für Informatik IX Kapitel 3: Suchen in Mengen - Datenstrukturen und Algorithmen - 51 RWTH Aacen, Lerstul für Informatik IX Kapitel 3: Sucen in Mengen - Datenstrukturen und Algoritmen - 51 Sucbäume Biser betractete Algoritmen für Suce in Mengen Sortierte Arrays A B C D - Nur sinnvoll für

Mehr

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

Mehr

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06 Balancierte Bäume Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06 2 Ziele AVL-Bäume als einen wichtigen Vertreter balancierter

Mehr

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)

Mehr

Kurs 1575, Musterlösung zur Winter Klausur 2002/03

Kurs 1575, Musterlösung zur Winter Klausur 2002/03 1 0 Kurs 1575, Musterlösung zur Klausur im Wintersemester 2002/03 1 Kurs 1575, Musterlösung zur Winter Klausur 2002/03 Aufgabe 1: Warteschlange Wer kennt das Problem nicht? Sie wollen noch schnell im Supermarkt

Mehr

Codes und Informationsgehalt

Codes und Informationsgehalt Aufgaben 2 Codes und Informationsgehalt Auf wie viele Dezimalziffern genau können vorzeichenlose ganze Zahlen in einem binären Code der Länge 32 bit dargestellt werden? 2 Codes und Informationsgehalt Auf

Mehr

Schnittstellen implementieren am Beispiel Suchbaum

Schnittstellen implementieren am Beispiel Suchbaum Motivation Informatik mit Java und BlueJ Schnittstellen implementieren am Beispiel Suchbaum von Bernhard Rosing Schreiben Sie eine Klasse Person, deren Instanzen in ein TreeSet (Suchbaum) eingefügt werden

Mehr

Herbst. Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen. Prüfungsteilnehmer prüfungstermin Einzelprüfungsnummei. - Prüfungsaufgaben -

Herbst. Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen. Prüfungsteilnehmer prüfungstermin Einzelprüfungsnummei. - Prüfungsaufgaben - Prüfungsteilnehmer prüfungstermin Einzelprüfungsnummei Kennzahl: Kennwort: Arbeitsplatz-Nr.: Herbst 2000 46114 Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen - Prüfungsaufgaben - Fach: Einzelprüfung:

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

Klausur Advanced Programming Techniques

Klausur Advanced Programming Techniques Advanced Prgramming Techniques Autr: Prf. Dr. Bernhard Humm, FB Infrmatik, Hchschule Darmstadt Datum: 8. Juli 2008 Klausur Advanced Prgramming Techniques 1 Spielregeln zur Klausur Allgemeines Die Bearbeitungszeit

Mehr

Vereins- und Kreis-Homepages auf der TTVSA-Sharepoint-Plattform

Vereins- und Kreis-Homepages auf der TTVSA-Sharepoint-Plattform Vereins- und Kreis-Hmepages auf der TTVSA-Sharepint-Plattfrm Einleitung Die TTVSA-Hmepage läuft bereits seit einiger Zeit auf einer Sharepint-Plattfrm. Da dieses System sich bewährt hat und die bisherigen

Mehr

MwSt. Luxemburg ab 01/2015 Stand: 28. November 2014

MwSt. Luxemburg ab 01/2015 Stand: 28. November 2014 MwSt. Luxemburg ab 01/2015 Stand: 28. Nvember 2014 Inhalt 1. Vrwrt... 2 2. Vraussetzungen... 2 3. Wer ist betrffen?... 2 4. Umstellung der neuen MwSt.-Cdes... 2 5. Umstellung im Detail... 4 6. Beispiele...

Mehr

Ausführliche Anleitung für die Durchführung einer Schüler- Befragung und Datensammlung per Diskette

Ausführliche Anleitung für die Durchführung einer Schüler- Befragung und Datensammlung per Diskette Ausführliche Anleitung für die Durchführung einer Schüler- Befragung und Datensammlung per Diskette I. Vraussetzungen: Sie benötigen für die Durchführung einer Befragung lediglich Cmputer und Disketten.

Mehr

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere

Mehr

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen aussagenlogischer Regeln: Wissensbasis (Kontextwissen): Formelmenge,

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

Formale Spezialisierungstechniken. am Beispiel des binären Baums. Hybride Programmiersprachen Daniel Krompass Berlin, 2009

Formale Spezialisierungstechniken. am Beispiel des binären Baums. Hybride Programmiersprachen Daniel Krompass Berlin, 2009 Formale Spezialisierungstechniken am Beispiel des binären Baums. Hybride Programmiersprachen Daniel Krompass Berlin, 2009 Spezialisierungsarten (Typbeziehungen erster Art) X stellt Methoden und Eigenschaften

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen 9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam

Mehr

Installation der Webakte Rechtsschutz

Installation der Webakte Rechtsschutz Installatin der Webakte Rechtsschutz Kstenfreie zusätzliche Funktin für WinMACS Sankt-Salvatr-Weg 7 91207 Lauf Tel. 09123/18 30-0 Fax 09123/18 30-183 inf@rummel-ag.de www.rummel-ag.de Inhaltsverzeichnis

Mehr

XML Verarbeitung mit einer in Haskell eingebetteten DSL. Manuel Ohlendorf (xi2079)

XML Verarbeitung mit einer in Haskell eingebetteten DSL. Manuel Ohlendorf (xi2079) XML Verarbeitung mit einer in Haskell eingebetteten DSL Manuel Ohlendorf (xi2079) 2.0.200 Manuel Ohlendorf Übersicht 1 2 Einführung Datenstruktur Verarbeitung Vergleich mit anderen Verfahren Fazit 2 Übersicht

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere

Mehr

binäre Suchbäume Informatik I 6. Kapitel binäre Suchbäume binäre Suchbäume Rainer Schrader 4. Juni 2008 O(n) im worst-case Wir haben bisher behandelt:

binäre Suchbäume Informatik I 6. Kapitel binäre Suchbäume binäre Suchbäume Rainer Schrader 4. Juni 2008 O(n) im worst-case Wir haben bisher behandelt: Informatk I 6. Kaptel Raner Schrader Zentrum für Angewandte Informatk Köln 4. Jun 008 Wr haben bsher behandelt: Suchen n Lsten (lnear und verkettet) Suchen mttels Hashfunktonen jewels unter der Annahme,

Mehr

FB Informatik. Fehler. Testplan

FB Informatik. Fehler. Testplan Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

Binary Space Partitioning Trees: Konzepte und Anwendungen

Binary Space Partitioning Trees: Konzepte und Anwendungen Binary Space Partitioning Trees: Konzepte und Anwendungen Bastian Rieck Gliederung 1 Motivation 2 BSP Trees: Der klassische Ansatz Grundlagen Maleralgorithmus Probleme und Erweiterungen 3 BSP Trees: Anwendungen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

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

Softwaretechnik 1 Tutorium

Softwaretechnik 1 Tutorium Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Softwaretechnik 1 Tutorium 06. Juli 2009 Matthias Thoma (s_thoma@ira.uka.de) Heute Übungsblatt Nr. 4 + Übungsblatt Nr. 5 Softwarequalität

Mehr

6. Algorithmen der Computer-Geometrie

6. Algorithmen der Computer-Geometrie 6. Algorithmen der Computer-Geometrie 1. Einführung 2. Schnitt von zwei Strecken 3. Punkt-in-Polygon-Test 4. Schnitt orthogonaler Strecken 5. Punkteinschlussproblem Geo-Informationssysteme 146 6.1 Computer-Geometrie

Mehr

Unterrichtsvorhaben Q2- I:

Unterrichtsvorhaben Q2- I: Schulinterner Lehrplan Informatik Sekundarstufe II Q2 III. Qualifikationsphase Q2 Unterrichtsvorhaben Q2- I: Im ersten Halbjahr 1 Klausur, im 2. Halbjahr ein Projekt. Die Länge der Klausur beträgt 90 min.

Mehr

Android Java Specifics / Basic IO

Android Java Specifics / Basic IO Dalvik virtual machine Registermaschine anstelle einer Stackmaschine Optimiert für geringen Speicherverbrauch Umwandlung von.class Dateien in.dex-format mit Hilfe von dx Jedes Programm läuft als eigener

Mehr

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

Mehr

Kapitel 3 Das Projekt Bankkonto Seite 1

Kapitel 3 Das Projekt Bankkonto Seite 1 Kapitel 3 Das Projekt Bankkonto Seite 1 3 Das Projekt Bankkonto Nun wirst du dich etwas gründlicher mit dem Quelltext einer Klasse beschäftigen. Du lernst, wie zwei Objekte eine gemeinsame Aufgabe erledigen.

Mehr

Datensicherung und Wiederherstellung von virtuellen Umgebungen

Datensicherung und Wiederherstellung von virtuellen Umgebungen Datensicherung und Wiederherstellung vn virtuellen Umgebungen Wie werden virtuelle Maschinen gesichert und wieder hergestellt Inhalt Vraussetzungen...2 Allgemein - Datensicherungen Typ Vllsicherung...2

Mehr

Merkblatt 4-12. Sicherungsstrategien. Das Archivbit. Datensicherung. Es müssen prinzipiell zwei Arten von Sicherungsstrategien unterschieden werden:

Merkblatt 4-12. Sicherungsstrategien. Das Archivbit. Datensicherung. Es müssen prinzipiell zwei Arten von Sicherungsstrategien unterschieden werden: Mdul 4 - Datensicherung Merkblatt 4-12 Datensicherung Sicherungsstrategien Es müssen prinzipiell zwei Arten vn Sicherungsstrategien unterschieden werden: Sicherung des Betriebsystems für eine Wiederherstellung

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

Mindjet ifilter Manuelle Installation

Mindjet ifilter Manuelle Installation Mindjet ifilter Manuelle Installatin Mindjet Crpratin Service-Htline: +49 (0)6023 9645 0 1160 Battery Street East San Francisc CA 94111 USA Telefn: 415-229-4200 Fax: 415-229-4201 www.mindjet.cm 2014 Mindjet.

Mehr

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir Effiziente Algorithmen Lösen NP-vollständiger Probleme 289 Branch-and-Bound Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir 1.

Mehr

Beispiel zu Datenstrukturen

Beispiel zu Datenstrukturen zu Datenstrukturen Passend zum Kurs 01661 Version Juni 2008 Dieter Hoffmann Dipl.-Inform. Diese Kurshilfe zum Kurs Datenstrukuren I (Kursnummer 01661) bei Prof. Dr. Güting (Lehrgebiet Praktische Informatik

Mehr

Gierhardt. 1 import javakara. JavaKaraProgram ; 3 public class Playit1 extends JavaKaraProgram. 4 { // Anfang von Playit1. 6 void gehezumbaum ( ) 7 {

Gierhardt. 1 import javakara. JavaKaraProgram ; 3 public class Playit1 extends JavaKaraProgram. 4 { // Anfang von Playit1. 6 void gehezumbaum ( ) 7 { Informatik: Einführung in Java Gierhardt Play it again, Kara! (Lsg.) 1. Kara soll ein Kleeblatt finden, das sich in der gleichen Zeile (oder Spalte) befindet wie er selbst. Zwischen ihm und dem Kleeblatt

Mehr

Kurzanleitung E-Mail-System

Kurzanleitung E-Mail-System Kurzanleitung E-Mail-System E-Mail mit Outlk abrufen:...2 E-Mail mit Outlk Express abrufen:... 3 Was bedeutet die Fehlermeldung "550 - relay nt permitted"?... 4 Welche Größe darf eine einzelne E-Mail maximal

Mehr

Software Engineering Übung 5 Verträge, Aufwand- und Risikoschätzung

Software Engineering Übung 5 Verträge, Aufwand- und Risikoschätzung software evolution & architecture lab Software Engineering Übung 5 Verträge, Aufwand- und Risikoschätzung 1 Informationen 1.1 Daten Ausgabe Di 10.11.2009 Abgabe So 22.11.2009 bis 23:59 Uhr Besprechung

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