Informatik II - Tutorium 8

Größe: px
Ab Seite anzeigen:

Download "Informatik II - Tutorium 8"

Transkript

1 Informatik II - Tutorium 8 Vincent Becker vincent.becker@inf.ethz.ch Vincent Becker

2 Altklausuren verfügbar Für regisitrierte AMIV-Mitglieder Mehrere Altklausuren Disclaimer lesen! Die Altklausuren lassen keine Schlüsse auf zukünftige Klausuren zu! Vincent Becker

3 Stack Traces in Tests Über die Stack Traces fehlgeschlagener Tests können Fehler gefunden warden In Zeile 43 von empty kam es zu einer NullPointerException, der Aufruf kam von Zeile 65 in runtimes Vincent Becker

4 Übungsblatt 7 Vincent Becker

5 U7.A1 Generics Gegeben: Eine Menge von Gruppen von Studenten, die jeweils eine Punktzahl haben, und ein Bestehenskriterium Gesucht: Eine Liste der Studenten die bestanden haben Hilfsfunktion private boolean filter(student student) { return student.getpoints() >= (IFilter.criteria / 100 * IFilter.maxNumberofPoints); } Student -name -legi -points +getpoints() +setpoints( int points) Vincent Becker

6 U7.A1 Ohne Generics public ArrayList filterraw(arraylist groups) { ArrayList result = new ArrayList(); for (int i = 0; i < groups.size(); i++) { ArrayList group = (ArrayList) groups.get(i); Cast notwendig! for (int j = 0; j < group.size(); j++) { Student student = (Student) group.get(j); if (filter(student)) { result.add(student); } } } return result; } Warning: ArrayList is a raw type. References to generic type ArrayList<E> should be parameterized Vincent Becker

7 U7.A1 Mit Generics public ArrayList<Student> filtergeneric(arraylist<arraylist<student>> groups) { } ArrayList<Student> result = new ArrayList<Student>(); for (int i = 0; i < groups.size(); i++) { } ArrayList<Student> group = groups.get(i) for (int j = 0; j < group.size(); j++) { } Student student = group.get(j); if (filter(student)) { } return result; result.add(student); Kein Cast notwendig! Vincent Becker

8 Generics Vorteile Java kann Typen prüfen Nur kompatible Objekte können zur Liste hinzugefügt werden Kein Cast auf den richtigen Typ mehr notwendig Übersichtlicher für den Entwickler Extends mit Generics class MyPair<T> { public T first, second; } vs. class MyPair<T extends Comparable<T>> {... } Für T können nur noch Typen benutzt werden, die Comparable<T> implementieren (u.a. Float, Integer, String) pair.first bietet nun bestimmt int compareto(t other) Vincent Becker

9 U7.A2 Tic-Tac-Toe Überlegungen zu Spielbäumen Überlegen Sie sich, wie das Attribut eines Knotens auf Grund der Attribute der Nachfolger berechnet wird, wenn Sie bzw. Ihr Gegner an der Reihe sind. Vincent Becker

10 Ich: x, Gegner:, ich bin am Zug MAX Strategie von MAX MIN MAX MIN Vincent Becker

11 U7.A3 Binäre Suchbäume Die Knoten enthalten Schlüsselattribute, die total geordnet sind Suchen erfolgt durch Schlüsselvergleich Für jeden Knoten mit Schlüsselattribut s gilt: Alle Schlüssel im linken Unterbaum sind kleiner als s Alle Schlüssel im rechten Unterbaum sind grösser als s Die Unterbäume sind wiederum Suchbäume Vincent Becker

12 U7.A3 Binäre Bäume Implementierung public class BinarySearchTree<T> { } public int key; public T thing; public BinarySearchTree<T> left; public BinarySearchTree<T> right; public BinarySearchTree(int key, T thing) { } this.key = key; this.thing = thing; this.left = null; this.right = null; Vincent Becker

13 U7.A3 Binäre Suchbäume Beispiellösung find public T find(binarysearchtree<t> tree, int key) { } if (tree == null) return null; if (key == tree.key) { } return tree.thing; if (key < tree.key) { } return find(tree.left, key); return find(tree.right, key); Vincent Becker

14 Gesamtwert: über CHF 600! U7.A4 Reversi Reversi-Turnier, Vincent Becker

15 Reversi Unsere Spielregeln: Alle Steine haben zwei Seiten, eine rote und eine grüne Ziel: möglichst viele Steine der eigenen Farbe haben Spielbeginn: Prinzip: Alle Steine zwischen einem neu gelegten Stein und den Steinen derselben Farbe werden zu jener Farbe umgedreht Vincent Becker

16 Reversi Beispiel: Grüner Spieler legt Stein auf F6 Vincent Becker

17 Reversi Einrichten mit reversi.jar und Javadocs Testplattform: reversi.ethz.ch Literatur auf der Webseite (passwortgeschützt) Username: i2bib Passwort: reversi Vincent Becker

18 Übungsblatt 8 Vincent Becker

19 U8.A1 Binäre Suche Schnelles Suchen in sortierten Arrays [1, 7, 13, 15, 45, 89, 123] Wie findet man die 45 schnell? Lineare Suche: Worst case n Schritte für n Elemente Lösung: Binäre Suche Vincent Becker

20 U8.A1 Binäre Suche 1. Vergleiche mit dem Element in der Mitte 2. Wenn kleiner, suche rekursiv in der linken Hälfte weiter 3. Ansonten in der rechten weitersuche 4. Aufhören, wenn man auf das Element getroffen ist Suche nach 45: [1, 7, 13, 15, 45, 89, 123] [1, 7, 13, 15, 45, 89, 123] [1, 7, 13, 15, 45, 89, 123] [1, 7, 13, 15, 45, 89, 123] Vincent Becker

21 U8.A1 Binäre Suche Interface: public interface IBinarySearch<Key extends Comparable<Key>, Value> { } public Value find(list<unit<key, Value>> haystack, Key needle); find nimmt eine Liste, die Elemente vom Typ Unit<Key, Value> enthält und ein Key entgegen Ein Objekt vom Typ Key ist mit anderen Key-Objekten vergleichbar compareto ist auf jeden Fall implementiert Vincent Becker

22 U8.A1 Binäre Suche Idee für find: Rekursive Hilfsmethode findrecursive(list<unit<key, Value>> haystack, Key needle, int begin, int end) Vincent Becker

23 U8.A2 Rucksackproblem und Backtracking x2 g2, w2 x3 g3, w3 x1 g1, w1 x4 g4, w4 x5 g5, w5 Vincent Becker

24 U8.A2 Rucksackproblem und Backtracking Das allgemeine Rucksackproblem k Gegenstände: x 1,..., x k Jeweils bekannter Wert w i und Gewicht g i Auswahl von Gegenständen, dass Gesamtgewicht nicht überschritten wird Optimierungsproblem: Maximieren vom Wert der ausgewählten Gegenstände W = max(σ k 1 i=0 b i w i ), σ k 1 i=0 b i g i G b i gibt an, ob der Gegenstand eingepackt ist oder nicht Entscheidungsproblem NP-vollständig Vincent Becker

25 U8.A2 Rucksackproblem und Backtracking Wie viele Möglichkeiten hat der Dieb? M = Menge der verfügbaren Gegenständen Anzahl der Teilmengen Der Dieb kann auch die leere Menge Ø (fauler Dieb) oder die gesamte Menge M (starker Dieb mit grossem Sack) schaffen! Eine Menge M mit M =k Elementen besitzt 2 k Teilmengen Das entspricht der Anahl an Binärzahlen mit k Stellen Vincent Becker

26 U8.A2 Brute Force Alle Konfigurationen durchprobieren Jeweils Gesamtgewicht und Gesamtwert prüfen Vincent Becker

27 U8.A2 Brute Force Gewicht Wert Vincent Becker

28 U8.A2 Brute Force Liefert diese einfache Diebes-Strategie immer das optimale Ergebnis? Vincent Becker

29 U8.A2 Backtracking Gewichtbeschränkung: Aktuelles Gewicht: Aktuelles Gewicht: 0 Aktuelles Gewicht: 1 A. G.: 1 A.G.: Aktuelles Gewicht: 1.1 Aktuelles Gewicht: 1 A. G.: 1.1 A. G.: 2 A. G.: 2.1 Vincent Becker

30 U8.A2 Backtracking Vorteil: Bei vorläufiger Beendigung der Suche in eine bestimmte Richtung werden ganze Teilbäume abgeschnitten Liefert diese Backtracking Diebes-Strategie immer das optimale Ergebnis? Vincent Becker

31 U8.A2 Backtracking Beispiel: Ausgang in einem Labyrinth suchen Sich für eine Richtung entscheiden In diese Richtung weitergehen Wenn letztendlich erfolglos zurückkehren und eine andere Richtung wählen Wenn letztendlich erfolgreich fertig Backtracking Falls bereits alle Richtungen ausprobiert noch weiter zurück. Vincent Becker

32 U8.A2 Tipps zur Implementierung Konfiguration als Bitfolge: class Selection Achtung: bei Vergrösserung der Konfiguration (neuen Gegenstand in den Sack legen, A1c) muss der neue Stellenwert initialisiert werden Selection cursel = new Selection(prevSelSize, prevselintvalue); cursel.set(newbit, newbool); Gesamtgewicht einer Selection: cursel.sum(weights); Gesamtwert einer Selection: cursel.sum(values); Vincent Becker

33 U8.A3 Reversi Teil 2 checkmove implementieren Greedy-Strategie implementieren HumanPlayer nextmove() wartet auf Eingabe von der Kommandozeile RandomPlayer nextmove() wählt einen zufälligen (aber gültigen!) nächsten Zug GreedyPlayer nextmove() wählt nächsten Zug anhand einer einfachen, nicht-rekursiven Bewertungsfunktion Download Übungsserie 7 Übungsserie 8 Vincent Becker

34 U8.A3 Reversi Teil 2 GreedyPlayer a. Implementieren eines Spielers, der unter allen möglichen Zügen den besten auswählt Bester Zug: b. Weitere Tipps: Zug, nach dessen Durchführung man maximal mehr Steine besitzt als der Gegner: «Denktiefe = 1» d.h.: kein Spielbaum nötig! i. Ermitteln des besten Zuges: Board kopieren (clone), Zug ausführen, zählen... ii. Hier dürft ihr GameBoard.checkmove wieder verwenden iii. gb.countstones(int color) zählt die Steine von einem Spieler iv. Utils.other() gibt die Farbe vom anderen Spieler Vincent Becker

35 viel Spass! Vincent Becker

Informatik II Übung 8 Gruppe 4

Informatik II Übung 8 Gruppe 4 Informatik II Übung 8 Gruppe 4 (Folien teils von Christian B. und Christelle G.) Lukas Burkhalter lubu@inf.ethz.ch Informatik II Übung 8 Lukas Burkhalter 24. April 2018 1 https://xkcd.com/1270/ Nachbesprechung

Mehr

Informatik II Übung 8 Gruppe 3

Informatik II Übung 8 Gruppe 3 Informatik II Übung 8 Gruppe 3 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 8 Leyna Sadamori 26. April 2017 1 Debriefing Übung 7 2 U7A1 Generics Grundprinzip sehr simpel Iteration über

Mehr

Informatik II - Übung 08

Informatik II - Übung 08 Informatik II - Übung 08 Katja Wolff katja.wolff@inf.ethz.ch Übungsblatt 7 Informatik II Übung 08 26.04.2017 2 U7.A1: IFilter public ArrayList filterraw( ArrayList groups ) { ArrayList result = new ArrayList();

Mehr

Informatik II Übung 8

Informatik II Übung 8 Informatik II Übung 8 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 25.4.2018 Carina Fuss 25.4.2018 1 Übung 8 Nachbesprechung Übung 7 Vorbesprechung Übung 8 binäre Suche Backtracking anhand vom Rucksackproblem

Mehr

Informatik II - Übung 08

Informatik II - Übung 08 Informatik II - Übung 08 Christian Beckel beckel@inf.ethz.ch 17.04.2014 U7.A1: IFilter public ArrayList filterraw( ArrayList groups ) dynamic ArrayList result = new ArrayList(); cast for( int i = 0; i

Mehr

Informatik II - Tutorium 7

Informatik II - Tutorium 7 Informatik II - Tutorium 7 Vincent Becker vincent.becker@inf.ethz.ch 18.04.2018 Vincent Becker 19.04.2018 1 Altklausuren verfügbar Für regisitrierte AMIV-Mitglieder Mehrere Altklausuren Disclaimer lesen!

Mehr

Informatik II Übung 8. Pascal Schärli

Informatik II Übung 8. Pascal Schärli Informatik II Übung 8 pascscha@student.ethz.ch Was gibts heute? Warm-Up Nachbesprechung Serie 7 Best-Of Vorlesung: Binäre Suche Key-Value Paare Backtracking Vorbesprechung Serie 8 2 Warm - Up Warm - Up

Mehr

Informatik II - Übung 07

Informatik II - Übung 07 Informatik II - Übung 07 Katja Wolff katja.wolff@inf.ethz.ch Besprechung Übungsblatt 6 Informatik II Übung 07 12.04.2017 2 Übungsblatt 6 1.) Klassen, Schnittstellen, Typumwandlung 2.) Schnittstellen und

Mehr

Informatik II - Übung 07. Christian Beckel

Informatik II - Übung 07. Christian Beckel Informatik II - Übung 07 Christian Beckel beckel@inf.ethz.ch 15.04.2015 Heute Besprechung Blatt 06 Demo: Objektorientierte Programmierung Hinweise zu Blatt 07 Christian Beckel 15/04/15 2 Besprechung Übungsblatt

Mehr

Informatik II Übung 9 Gruppe 3

Informatik II Übung 9 Gruppe 3 Informatik II Übung 9 Gruppe 3 Julia Gygax jgygax@student.ethz.ch Julia Gygax 02.05.2018 1 Administratives Am 23. Mai beginnt die Übung erst um 13.15 Julia Gygax 02.05.2018 2 Warm up Spielbaum / Generics

Mehr

Informatik II (D-ITET) Übungsstunde 8,

Informatik II (D-ITET) Übungsstunde 8, Informatik II (D-ITET) Übungsstunde 8, 27.04.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich The Heartbleed Bug *http://heartbleed.com/ 2 Ablauf Besprechung von Übung 7

Mehr

Informatik II Übung 9

Informatik II Übung 9 Informatik II Übung 9 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch Informatik

Mehr

Informatik II (D-ITET) Übungsstunde 7,

Informatik II (D-ITET) Übungsstunde 7, Informatik II (D-ITET) Übungsstunde 7, 13.04.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung von Übung 6 Hinweise für Übung 7 (Generics, Binary Trees,

Mehr

Informatik II Übung 7

Informatik II Übung 7 Informatik II Übung 7 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 18.04.2013

Mehr

Informatik II Übung 7 Gruppe 3

Informatik II Übung 7 Gruppe 3 Informatik II Übung 7 Gruppe 3 Julia Gygax jgygax@student.ethz.ch Julia Gygax 18.04.2018 1 Nachbesprechung Übung 6 Julia Gygax 18.04.2018 2 Aufgabe 1 Klassen, Schnittstellen und Typumwandlungen Julia Gygax

Mehr

Informatik II Übung 08

Informatik II Übung 08 Informatik II Übung 08 Michael Baumann mbauman@student.ethz.ch n.ethz.ch/~mbauman 27.04.2016 Ablauf 1) Nachbesprechung Serie 7 2) Backtracking 3) Vorbesprechung Serie 8 2 Serie 7 3 Aufgabe 1 Wir Gegner

Mehr

Informatik II Übung 7. Gruppe 2 Carina Fuss

Informatik II Übung 7. Gruppe 2 Carina Fuss Informatik II Übung 7 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 18.4.2018 Carina Fuss 16.4.2018 1 Übung 7 Hinweise zum Programmieren Nachbesprechung Übung 6 Vorbesprechung Übung 7 ArrayList und Generics

Mehr

Informatik II - Tutorium 9

Informatik II - Tutorium 9 Informatik II - Tutorium 9 Vincent Becker vincent.becker@inf.ethz.ch 02.05.2018 Vincent Becker 02.05.2018 1 Übungsblatt 8 Vincent Becker 02.05.2018 2 U8.A1 Binäre Suche Suche nach 47 mi = li + (re-li)/2;

Mehr

Informatik II Übung 9

Informatik II Übung 9 Informatik II Übung 9 Katja Wolff Katja.wolff@inf.ethz.ch 1 Othelligence Event Program: Game strategies and game theory Duell Human (German Champion) vs. Machine Panel Apéro Time: Friday, 19.05.2017, 16:00

Mehr

Informatik II Übung 7 Gruppe 7

Informatik II Übung 7 Gruppe 7 Informatik II Übung 7 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 7 Leyna Sadamori 10. April 2014 1 Administratives Nächste Übung fällt leider aus! Bitte eine andere Übung besuchen.

Mehr

Informatik II Übung 7. Pascal Schärli

Informatik II Übung 7. Pascal Schärli Informatik II Übung 7 pascscha@student.ethz.ch Was gibts heute? Warm-Up Nachbesprechung Serie 6 Best-Of Vorlesung: Generics Binäre Suchbäume Spielbäume Vorbesprechung Serie 7 2 Warm - Up Warm-Up interface

Mehr

Informatik II Übung 09. Benjamin Hepp 3 May 2017

Informatik II Übung 09. Benjamin Hepp 3 May 2017 Informatik II Übung 09 Benjamin Hepp benjamin.hepp@inf.ethz.ch 3 May 2017 Nachbesprechung U8 3 May 2017 Informatik II - Übung 01 2 Nachbesprechung U8 1. Binaere Suche 2. Knapsack Problem 3. Reversi Teil

Mehr

Informatik II Übung 09

Informatik II Übung 09 Informatik II Übung 09 Michael Baumann mbauman@student.ethz.ch n.ethz.ch/~mbauman 04.05.2015 Ablauf 1) Nachbesprechung Serie 8 2) Minimax & Alpha-Beta 3) Vorbesprechung Serie 9 2 Serie 8 3 Aufgabe 1 a,

Mehr

Informatik II (D-ITET)

Informatik II (D-ITET) Informatik II (D-ITET) simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Informatik II (D-ITET) 1 Ablauf Nachbesprechung Übung 6 Besprechung der Vorlesung Die neue Serie... Zeit zum Programmieren

Mehr

Probeklausur zur Vorlesung

Probeklausur zur Vorlesung Dr. Jochen Hoenicke Alexander Nutz Probeklausur zur Vorlesung Einführung in die Informatik Sommersemester 2014 Die Klausur besteht aus diesem Deckblatt und elf Blättern mit den Aufgaben, sowie einem Blatt

Mehr

Informatik II Übung 9. Pascal Schärli

Informatik II Übung 9. Pascal Schärli Informatik II Übung 9 pascscha@student.ethz.ch Was gibts heute? Warm-Up Nachbesprechung Serie 8 Best-Of Vorlesung: Minimax Alpha Beta Vorbesprechung Serie 9 Info zur Auffahrt 2 Warm - Up Warm-Up (Basisprüfung

Mehr

B6.1 Introduction. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Introduction. B6.3 Analyse. B6.4 Ordnungsbasierte Methoden

B6.1 Introduction. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Introduction. B6.3 Analyse. B6.4 Ordnungsbasierte Methoden Algorithmen und Datenstrukturen 11. April 2018 B6. Binäre Suchbäume a Algorithmen und Datenstrukturen B6. Binäre Suchbäume 1 Marcel Lüthi and Gabriele Röger Universität Basel 11. April 2018 a Folien basieren

Mehr

Semestralklausur Informatik I - Programmierung

Semestralklausur Informatik I - Programmierung RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK II RWTH Aachen D-52056 Aachen GERMANY http://www-i2.informatik.rwth-aachen.de/lufgi2 Prof. Dr. Jürgen Giesl LuFG

Mehr

Informatik II - Tutorium 12

Informatik II - Tutorium 12 Informatik II - Tutorium 12 Vincent Becker vincent.becker@inf.ethz.ch 23.05.2018 Vincent Becker 24.05.2018 1 Reversi-Turnier 30.5.2018 Deadline für Einreichung SONNTAG NACHT!!! Umfrage Bitte an Umfrage

Mehr

Informatik II (D-ITET) Übungsstunde 10,

Informatik II (D-ITET) Übungsstunde 10, Informatik II (D-ITET) Übungsstunde 10, 11.05.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung von Übung 9 Hinweise für Übung 10 (Mergesort, Türme von

Mehr

Informatik II - Tutorium 4

Informatik II - Tutorium 4 Informatik II - Tutorium 4 Vincent Becker vincent.becker@inf.ethz.ch 22.03.2017 Vincent Becker 27.03.2017 1 Übungsblatt 3 Vincent Becker 27.03.2017 2 U3.A1 Programmverifikation static int f(int i, int

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

Informatik II - Tutorium 2

Informatik II - Tutorium 2 Informatik II - Tutorium 2 Vincent Becker vincent.becker@inf.ethz.ch 07.03.2018 Vincent Becker 08.03.2018 1 Übungsblatt 1 Vincent Becker 08.03.2018 2 U1.A1 f(a, b) = a x b = a) Induktionsbeweis über a

Mehr

Anwendungsbeispiel MinHeap

Anwendungsbeispiel MinHeap Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n

Mehr

Allgemeine Hinweise:

Allgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 11/12 Einführung in die Informatik I Probe-Klausur Prof. Dr. Helmut Seidl, M. Schwarz, A. Herz,

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 09: Generics and Comparison Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 /

Mehr

Prof. Dr. Uwe Schmidt. 30. Januar 2017

Prof. Dr. Uwe Schmidt. 30. Januar 2017 Prof. Dr. Uwe Schmidt 30. Januar 2017 Aufgaben zur Klausur Algorithmen und Datenstrukturen im WS 2016/17 ( B Inf, B TInf, B MInf, B CGT, B WInf, B Ecom, B ITE) Zeit: 75 Minuten erlaubte Hilfsmittel: keine

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 14. Bäume. Bäume 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 14. Bäume. Bäume 1 Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1 Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können

Mehr

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda Bäume O1 O2 Text O3 O4 O5 O6 O7 Prof. Dr. Margarita Esponda SS 2012 22. ALP2-Vorlesung, M. Esponda Inhalt 1. Einführung 2. Warum Bäume? 3. Listen und Arrays vs. Bäume 4. Einfach verkettete binäre Suchbäume

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Übungsserie Nr. 6. Ausgabe: 1. April 2015 Abgabe: 15. April Hinweise

Übungsserie Nr. 6. Ausgabe: 1. April 2015 Abgabe: 15. April Hinweise Informatik II (D-ITET) Frühjahrssemester 2015 Prof. Friedemann Mattern Christian Beckel (beckel@inf.ethz.ch) ETH Zürich Institut für Pervasive Computing Gruppe für Verteilte Systeme http://vs.inf.ethz.ch

Mehr

Bäume. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang. WS 07/08

Bäume. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang.   WS 07/08 Bäume Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Standardimplementierungen für Bäume kennen lernen 3 Bäume (abstrakt) Bäume sind

Mehr

Bäume. Martin Wirsing. Ziele. Implementierung von Knoten. Bäume (abstrakt) Standardimplementierungen für Bäume kennen lernen

Bäume. Martin Wirsing. Ziele. Implementierung von Knoten. Bäume (abstrakt) Standardimplementierungen für Bäume kennen lernen 2 Ziele Bäume Standardimplementierungen für Bäume kennen lernen Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 02/0 4 Bäume (abstrakt) Implementierung von Knoten Bäume

Mehr

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Einführung. B6.2 Symboltabellen. B6.3 Einfache Implementationen

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Einführung. B6.2 Symboltabellen. B6.3 Einfache Implementationen Algorithmen und Datenstrukturen 03. April 2019 B6. Symboltabellen a Algorithmen und Datenstrukturen B6. Symboltabellen 1 Marcel Lüthi and Gabriele Röger Universität Basel 03. April 2019 a Folien basieren

Mehr

Lösungshinweise/-vorschläge zum Übungsblatt 8: Software-Entwicklung 1 (WS 2017/18)

Lösungshinweise/-vorschläge zum Übungsblatt 8: Software-Entwicklung 1 (WS 2017/18) Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 8: Software-Entwicklung 1 (WS 2017/18)

Mehr

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen. Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten

Mehr

Informatik II - Übung 10

Informatik II - Übung 10 Informatik II - Übung 10 Christian Beckel beckel@inf.ethz.ch 08.05.2014 Blatt 08 1) Binäre Suche 2) TicTacToe 3) Reversi: checkmove() & GreedyPlayer 4) Backtracking Christian Beckel 09/05/14 2 U8.A3: checkmove()

Mehr

Informatik II. Übungsstunde 6. Distributed Systems Group, ETH Zürich

Informatik II. Übungsstunde 6. Distributed Systems Group, ETH Zürich Informatik II Übungsstunde 6 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung der Vorlesung Uebungsbezogene Themen: Statisches & Dynamisches Type Checking Zeit zum Programmieren...

Mehr

Informatik II - Übung 10

Informatik II - Übung 10 Informatik II - Übung 10 Katja Wolff katja.wolff@inf.ethz.ch U9.A1: Mini-Max-Algorithmus Strategie von MAX 4 Höhe: 4 Suchtiefe: 3 bester Zug: links MAX 4 0-2 MIN 4 7 3 0 2-2 8 MAX 7-5 2 1 7 8 MIN Informatik

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion

Mehr

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

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

Mehr

Rechtsbelehrung. Java und OOP Das Buch Christian Silberbauer 144

Rechtsbelehrung. Java und OOP Das Buch Christian Silberbauer   144 Rechtsbelehrung Dieser Foliensatz ist urheberrechtlich geschützt. Änderungen an den Folien sind untersagt. Ausschließlich eine nicht-kommerzielle Nutzung ist kostenfrei. Andernfalls wird eine Gebühr fällig.

Mehr

9. Natürliche Suchbäume

9. Natürliche Suchbäume Bäume Bäume sind. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Verallgemeinerte Listen: Knoten können mehrere Nachfolger haben Spezielle Graphen: Graphen bestehen aus Knoten

Mehr

Beispielprüfung CuP WS 2015/2016

Beispielprüfung CuP WS 2015/2016 Beispielprüfung CuP WS 2015/2016 Univ.-Prof. Dr. Peter Auer 23. Dezember 2015 Informationen zur Prüfung Die Prüfung wird als Multiple-Choice-Test mit 10 Fragen am Computer abgehalten. (Bei manchen Fragen

Mehr

Klausur zur Vorlesung Einführung in die Programmierung

Klausur zur Vorlesung Einführung in die Programmierung Ludwig-Maximilians-Universität München Institut für Informatik Dr. Peer Kröger, Dr. Andreas Züfle Daniel Kaltenthaler, Klaus Schmid Klausur zur Vorlesung Einführung in die Programmierung Lösungen Vorname:

Mehr

Schein-/Bachelorklausur Teil 2 am Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock.

Schein-/Bachelorklausur Teil 2 am Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock. Schein-/Bachelorklausur Teil 2 am 13.02.2007 Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock. Alle Studiengänge außer Bachelor melden sich über die Lehrstuhlwebseite

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo g@accaputo.ch 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,

Mehr

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

Beispiellösung zur Klausur AI2 im Sommersemester 2007

Beispiellösung zur Klausur AI2 im Sommersemester 2007 Beispiellösung zur Klausur AI2 im Sommersemester 2007 Die Lösung soll als Beispiellösung für die Vorbereitung auf die Nachklausur dienen. Es ist durchaus möglich, dass sich noch kleine Fehler eingeschlichen

Mehr

Prüfung Algorithmen und Datenstrukturen I

Prüfung Algorithmen und Datenstrukturen I Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IF 3 B Wintersemester 2016/17 Prüfung Algorithmen und Datenstrukturen I Datum : 23.01.2017, 08:30 Uhr

Mehr

MB2-ALG, SS15 Seite 1 Hauptklausur, geschrieben am

MB2-ALG, SS15 Seite 1 Hauptklausur, geschrieben am MB-ALG, SS1 Seite 1 Hauptklausur, geschrieben am.07.01 Vorname Nachname Matrikel-Nr Diese Klausur ist mein letzter Prüfungsversuch (bitte ankreuzen): Ja Nein Ihre Lösung für Aufgabe 1 können Sie direkt

Mehr

Übung 4: Die generische Klasse AvlBaum in Java 1

Übung 4: Die generische Klasse AvlBaum in Java 1 Übung 4: Die generische Klasse AvlBaum in Java 1 Ein binärer Suchbaum hat die AVL -Eigenschaft, wenn sich in jedem Knoten sich die Höhen der beiden Teilbäume höchstens um 1 unterscheiden. Diese Last (

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Die Definition wichtiger Begriffe im Zusammenhand mit Bäumen zu kennen. Markierte Bäumen, insbesondere Suchbäume,

Mehr

Institut für Programmierung und Reaktive Systeme 7. Mai Programmieren II. 11. Übungsblatt

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

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.

Mehr

Suchen. lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable

Suchen. lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable Suchen lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable Welche Nummer hat Herr Meier? Enthält Einträge (Elemente) der Form : Name, Vorname

Mehr

Informatik II Übung 5

Informatik II Übung 5 Informatik II Übung 5 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 27.03.2013

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Informatik II - Tutorium 6

Informatik II - Tutorium 6 Informatik II - Tutorium 6 Vincent Becker vincent.becker@inf.ethz.ch 11.04.2018 Vincent Becker 11.04.2018 1 Teilnehmer für Projekte gesucht Falls jemand gerne an Experimenten teilnimmt, ein Email an mich

Mehr

public class Test extends MiniJava { public static void main (String [] args) { write(args[0]+args[1]); } } // end of class Test

public class Test extends MiniJava { public static void main (String [] args) { write(args[0]+args[1]); } } // end of class Test Manche Funktionen, deren Ergebnistyp void ist, geben gar keine Werte zurück im Beispiel: write() und main(). Diese Funktionen heißen Prozeduren. Das Hauptprogramm hat immer als Parameter ein Feld args

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Informatik II Übung 06. Benjamin Hepp 5 April 2017 Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.

Mehr

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer

Mehr

1. Die rekursive Datenstruktur Liste

1. Die rekursive Datenstruktur Liste 1. Die rekursive Datenstruktur Liste 1.4 Methoden der Datenstruktur Liste Die Warteschlange (Queue) ist ein Sonderfall der Datenstruktur Liste. Bei der Warteschlange werden Einfügen und Entfernen nach

Mehr

Tutoraufgabe 1 (Implementierung eines ADTs):

Tutoraufgabe 1 (Implementierung eines ADTs): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung (Abgabe.05.0) F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Implementierung eines ADTs): Wir spezifizieren den ADT

Mehr

Allgemeine Hinweise:

Allgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 11/12 Einführung in die Informatik I Probe-Klausur Prof. Dr. Helmut Seidl, M. Schwarz, A. Herz,

Mehr

5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Motivation für Generics: Containertypen speichern eine Anzahl von Elementen anderer Typen Wie definiert man die Containerklasse ArrayList? In der Definition könnte man als Elementtyp Object angeben maximale

Mehr

Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur Objektorientierte Programmierung im WS 2003/04 (IA 252) Zeit: 90 Minuten erlaubte Hilfsmittel: keine

Mehr

Abschlussklausur Lösung. Bitte in Druckschrift leserlich ausfüllen!

Abschlussklausur Lösung. Bitte in Druckschrift leserlich ausfüllen! Informatik für Informationsmanager II SS 2006 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Steffen Staab Dr. Manfred Jackel Abschlussklausur 04.08.2006 Lösung Bitte in Druckschrift leserlich

Mehr

Lösungshinweise/-vorschläge zum Übungsblatt 9: Software-Entwicklung 1 (WS 2017/18)

Lösungshinweise/-vorschläge zum Übungsblatt 9: Software-Entwicklung 1 (WS 2017/18) Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 9: Software-Entwicklung 1 (WS 2017/18)

Mehr

Informatik II (D-ITET) Übungsstunde 2

Informatik II (D-ITET) Übungsstunde 2 Informatik II (D-ITET) Übungsstunde 2 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung der Vorlesung Übungsbezogene Themen: Bäume, Rekursion, Sortieren Zeit zum Programmieren

Mehr

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte) Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende

Mehr

Algorithmen und Datenstrukturen. Übersicht. Interfaces und Generics. InsertionSort für Punkte. InsertionSort für Punkte

Algorithmen und Datenstrukturen. Übersicht. Interfaces und Generics. InsertionSort für Punkte. InsertionSort für Punkte Algorithmen und Datenstrukturen Wintersemester 2012/13 21. Vorlesung Übersicht Liste und InsertionSort für e für Objekte beliebiger Klassen für Objekte von Klassen, die ein(e) Nutzer(in) festlegen kann

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

Algorithmen und Datenstrukturen CS1017

Algorithmen und Datenstrukturen CS1017 Algorithmen und Datenstrukturen CS1017 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Rekursiv definierte Strukturen und strukturelle Rekursion Listen und Bäume Strukturelle Rekursion

Mehr

Aufgabe 1 (Programmanalyse, Punkte)

Aufgabe 1 (Programmanalyse, Punkte) 2 Aufgabe 1 (Programmanalyse, 8 + 6 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Schreiben Sie hierzu jeweils die ausgegebenen Zeichen hinter den Kommentar OUT:. public class

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

Kapitel 12: Induktive

Kapitel 12: Induktive Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter

Mehr

Übung Informatik I - Programmierung - Blatt 8

Übung Informatik I - Programmierung - Blatt 8 RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK II RWTH Aachen D-5056 Aachen GERMANY http://programmierung.informatik.rwth-aachen.de LuFG Informatik II Prof.

Mehr

Informatik II (D-ITET)

Informatik II (D-ITET) Informatik II (D-ITET) simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Informatik II (D-ITET) 1 Ablauf Nachbesprechung Übung 1 Besprechung der Vorlesung Übungsbezogene Themen: Bäume, Rekursion,

Mehr