TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
|
|
- Mina Breiner
- vor 5 Jahren
- Abrufe
Transkript
1 TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die rmatik I Übungsblatt 8 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz, Dr. M. Petter Abgabe: (vor 12 Uhr) Aufgabe 8.1 (P) String-Listen In dieser Übung soll eine doppelt verkettete Liste realisiert werden. In einer solchen Liste wird in jedem Listen-Eintrag (Klasse Entry) eine Referenz auf den Vorgänger, eine Referenz auf den Nachfolger sowie eine Referenz auf die eigentliche rmation gespeichert. Wir implementieren die doppelt verkettete Liste zyklisch. Dabei gibt es einen ausgezeichneten Listen-Eintrag, der keine rmation speichert (das sogenannte Sentinel-Element) und sowohl vor dem ersten als auch hinter dem letzten eigentlichen Listen-Eintrag steht (siehe Abbildung). Der erste (bzw. letzte) eigentliche Listen-Eintrag ist dann der Nachfolger (bzw. Vorgänger) des Sentinel-Elementes. Insbesondere wird die leere Liste wie in der nachfolgenden Abbildung repräsentiert. leere Liste Sentinel Liste mit Einträgen Sentinel null null A n a Implementieren Sie die Klassen Entry und LinkedList. Ein Objekt der Klasse LinkedList soll eine zyklisch doppelt verkettete Liste repräsentieren und muss dementsprechend eine Referenz auf das Sentinel-Element halten. In der Klasse LinkedList soll Folgendes definiert sein: a) Ein Konstruktor zum Erzeugen von leeren Listen. b) Eine Methode void add(string s), die den String s am Ende der Liste anhängt. c) Eine Methode String tostring(), die eine Textrepräsentation der Liste zurückliefert. Lösungsvorschlag 8.1 public class Entry { S t r i n g element ; Entry next ; Entry p r e v i o u s ; Entry ( S t r i n g element, Entry next, Entry p r e v i o u s ) { this. element = element ; this. next = next ; this. p r e v i o u s = p r e v i o u s ; public S t r i n g getelement ( ) { return element ;
2 2 public S t r i n g t o S t r i n g ( ) { return [ Entry : + element + ] ; public class LinkedList { private Entry header ; public LinkedList ( ) { header = new Entry ( null, null, null ) ; header. p r e v i o u s = header ; header. next = header ; private void addbefore ( S t r i n g o, Entry e ) { i f ( o!= null ) { Entry newentry = new Entry ( o, e, e. p r e v i o u s ) ; newentry. p r e v i o u s. next = newentry ; newentry. next. p r e v i o u s = newentry ; public void add ( S t r i n g o ) { addbefore ( o, header ) ; public S t r i n g t o S t r i n g ( ) { S t r i n g retval = [ ; for ( Entry e = header. next ; e!= header ; e = e. next ) { retval = retval + e. getelement ( ) ; i f ( e. next!= header ) // Man i s t n i c h t bem l e t z t e n Element, a l s o, ausgeben retval = retval +, ; return retval + ] ; public class L i s t T e s t { public static void main ( S t r i n g [ ] args ) { LinkedList l i s t = new LinkedList ( ) ; l i s t. add (new S t r i n g ( Das ) ) ; l i s t. add (new S t r i n g ( i s t ) ) ; l i s t. add (new S t r i n g ( e i n e ) ) ; l i s t. add (new S t r i n g ( Test L i s t e! ) ) ; System. out. p r i n t l n ( Die L i s t e : + l i s t ) ; Aufgabe 8.2 (P) KI für Tic-Tac-Toe Spielbäume sind eine Darstellung für die zeitliche Abfolge aller Spielzügen oder -entscheidungen eines Spiels. Jeder Knoten dieses Baumes entspricht einer Spielsituation. Die Kinder eines Spieler 1 gewinnt Spieler 2 gewinnt unentschieden
3 3 Knotens entsprechen den Spielsituationen, die nach der Durchführung von jeweils einem Spielzug erreicht werden können. Sie bekommen für diese Aufgabe die Klasse TicTacToeGame auf der Homepage zur Verfügung gestellt. Diese Klasse bietet ihnen Methoden isfree, move, undo, getnumberofmoves, getlastmove, sowie playeronewins als auch playertwowins. Wir implementieren nun mit Hilfe von TicTacToeGame den Spielbaum für Tic-Tac-Toe: a) Erstellen Sie die Klasse TicTacToeTree, mit der man Spielbäume repräsentieren kann. b) Statten Sie TicTacToeTree mit einem Konstruktor für innere Knoten und einen Konstruktor für Blätter aus. c) Erstellen Sie eine statische Methode create, die durch das methodische Durchlaufen aller möglichen Züge den Spielbaum für ein frisches Tic-Tac-Toe-Spiel erstellt. Um einen intelligent spielenden Computergegner für Tic-Tac-Toe zu erzeugen, müssen wir nun noch Methoden implementieren, Spielzüge im Spielbaum nachzuvollziehen, und Spielsituationen zu bewerten: d) Erstellen Sie die Objektmethode move(int field), die augehend vom aktuellen Spielbaum den Spielbaum nach dem Setzen auf field zurückgibt. e) Erstellen Sie die Objektmethode int negamax(int player), die die Bewertung des Spielbaums für Spieler player nach folgendem Schema zurückgibt: Spielbaumblätter, deren Gewinner player ist sind 1 wert. Spielbaumblätter, deren Verlierer player ist, sind 1 wert. unentschiedene Spielbaumblätter sind 0 wert. die Bewertung innerer Spielbaumknoten berechnet sich aus der Bewertung ihrer Kinder. Im Detail nimmt man das Maximum der negierten Bewertungen der einzelnen Kinder für den Gegenspieler. Hinweis: Diese Berechnung kann man durch einen rekursiven Aufruf der negamax- Methode für alternierende Spieler vornehmen. f) Erstellen Sie nun als Hauptprogramm ein Tic-Tac-Toe-Spiel für einen Spieler gegen den Computer. Lösungsvorschlag 8.2 public c l a s s TicTacToeTree extends MiniJava { // a ) int v i c t o r y P l a y e r = 0 ; int p l a c e d F i e l d ; TicTacToeTree [ ] c h i l d r e n ; // b ) public TicTacToeTree ( int placedfield, TicTacToeTree [ ] c h i l d r e n ) { this. p l a c e d F i e l d = p l a c e d F i e l d ; this. c h i l d r e n=c h i l d r e n ; public TicTacToeTree ( int placedfield, int v i c t o r y P l a y e r ) { this ( placedfield,new TicTacToeTree [ 0 ] ) ; this. v i c t o r y P l a y e r=v i c t o r y P l a y e r ; // c ) public static TicTacToeTree c r e a t e ( TicTacToeGame h i s t o r y ) {
4 4 i f ( h i s t o r y. playeronewins ( ) ) { return new TicTacToeTree ( h i s t o r y. getlastmove ( ), 1 ) ; else i f ( h i s t o r y. playertwowins ( ) ) { return new TicTacToeTree ( h i s t o r y. getlastmove ( ), 2 ) ; else { TicTacToeTree [ ] c h i l d r e n = new TicTacToeTree [ 9 h i s t o r y. getnumberofmoves ( ) ] ; int nchildren =0; for ( int i = 0 ; i < 9 ; i++) { i f (! h i s t o r y. i s F r e e ( i ) ) continue ; h i s t o r y. move ( i ) ; c h i l d r e n [ nchildren++] = c r e a t e ( h i s t o r y ) ; h i s t o r y. undo ( ) ; return new TicTacToeTree ( h i s t o r y. getlastmove ( ), c h i l d r e n ) ; // d ) public TicTacToeTree move ( int f i e l d ) { for ( int i =0; i<c h i l d r e n. length ; i++){ i f ( c h i l d r e n [ i ]. p l a c e d F i e l d==f i e l d ) return c h i l d r e n [ i ] ; return null ; // e ) public int negamax ( int playernumber ) { // won board : i f ( v i c t o r y P l a y e r==playernumber ) return 1 ; // l o s t board : i f ( v i c t o r y P l a y e r== 3 playernumber ) return 1; i f ( c h i l d r e n. l e n g t h==0) return 0 ; int max= c h i l d r e n [ 0 ]. negamax(3 playernumber ) ; for ( int i =1; i<c h i l d r e n. length ; i++){ max=math. max(max, c h i l d r e n [ i ]. negamax(3 playernumber ) ) ; return max ; public static void main ( S t r i n g [ ] args ) { TicTacToeGame game = new TicTacToeGame ( ) ; System. out. p r i n t l n ( Started History Tree g e n e r a t i o n ) ; TicTacToeTree spielbaum = c r e a t e ( game ) ; System. out. p r i n t l n ( Finished History Tree g e n e r a t i o n ) ; game= new TicTacToeGame ( ) ; int p l a y e r =1; while (! ( game. getnumberofmoves ( )==9 game. playeronewins ( ) game. playertwowins ( ) ) ) { int move= 1; i f ( p l a y e r==1) while (! game. i s F r e e (move) ) move = r e adint ( Welches Feld s o l l b e l e g t werden? ) ; else { move = 0 ; for ( int i = 1 ; i <spielbaum. c h i l d r e n. length ; i++){
5 5 i f ( spielbaum. c h i l d r e n [ i ]. negamax ( 1 )> spielbaum. c h i l d r e n [ move ]. negamax ( 1 ) ) move=i ; move=spielbaum. c h i l d r e n [ move ]. p l a c e d F i e l d ; // Perform move : spielbaum=spielbaum. move(move) ; game. move(move ) ; System. out. p r i n t l n ( game. t o S t r i n g ( ) ) ; p l a y e r=3 p l a y e r ; Aufgabe 8.3 [4 Punkte] (H) Quicksort Ziel dieser Aufgabe ist es den Quicksort-Algorithmus für verkettete Listen ganzer Zahlen zu implementieren. Der Algorithmus hat folgenden Ablauf: Wähle aus der zu sortierenden Liste ein beliebiges Element, das sogenannte Pivot- Element aus: Verteile die Elemente der ursprünglichen Liste auf zwei neue Listen um. In die eine Liste kommen nur Elemente, die kleiner als das Pivot-Element (Links-Part) sind, in die andere nur solche, die größer oder gleich dem Pivot-Element (Rechts-Part) sind: Wende den Algorithmus rekursiv auf den Links-Part und auf den Rechts-Part an und kokateniere die resultierenden Listen: Sobald die zu sortierenden Listen die Länge 1 haben, brich den rekursiven Abstieg ab: Implementieren Sie eine Methode quicksort(intlist list). Diese Methode soll die oben genannten Schritte der Reihe nach erledigen! Lösungsvorschlag 8.3 public I n t L i s t l a s t ( ) { i f ( next == null ) { return this ; else { return next. l a s t ( ) ;
6 6 private I n t L i s t q u i c k s o r t ( ) { i f ( this. next==null ) return this ; // nothing to do I n t L i s t l i n k s P a r t=null, r e c h t s P a r t=null ; int p i vot = i n f o ; // s e l e c t p i v o t element I n t L i s t i t e r=this. next ; while ( i t e r!= null ) { i f ( i t e r. i n f o <p i vot ) { l i n k s P a r t=new I n t L i s t ( i t e r. i n f o, l i n k s P a r t ) ; else r e c h t s P a r t=new I n t L i s t ( i t e r. i n f o, r e c h t s P a r t ) ; i t e r=i t e r. next ; i f ( l i n k s P a r t!= null ) l i n k s P a r t=l i n k s P a r t. q u i c k s o r t ( ) ; // rec s o r t l e s s i f ( r e c h t s P a r t!= null ) r e c h t s P a r t=r e c h t s P a r t. q u i c k s o r t ( ) ; // rec s o r t more r e c h t s P a r t = new I n t L i s t ( pivot, r e c h t s P a r t ) ; i f ( l i n k s P a r t==null ) return r e c h t s P a r t ; l i n k s P a r t. l a s t ( ). next=r e c h t s P a r t ; return l i n k s P a r t ; Aufgabe 8.4 [4 Punkte] (H) String-Listen - Fortsetzung Erweitern Sie Ihre Implementierung aus Aufgabe 8.1 um folgende Methoden: a) int size(), die die Länge der Liste zurückliefert; b) void addfirst(string s), die den String s am Anfang der Liste einfügt; c) Entry first() und Entry last(), die, falls die Liste nicht leer ist, den ersten bzw. den letzten echten Listeneintrag zurückliefern. Ist die Liste leer, soll null zurückgeliefert werden; d) Entry next(entry e) und Entry prev(entry e), die den Vorgänger- bzw. Nachfolger- Eintrag zurückliefern. Ist dieser das Sentinel-Element, soll null zurückgeliefert werden; e) void remove(entry e), die das übergebene Entry-Objekt aus der Liste entfernt; f) void removefirst() und void removelast(), die den ersten bzw. letzten Eintrag löschen. Lösungsvorschlag 8.4 public class LinkedListH { private Entry header ; private int s i z e ; public LinkedListH ( ) { s i z e = 0 ; header = new Entry ( null, null, null ) ; header. p r e v i o u s = header. next = header ;
7 7 // T e i l a u f g a b e a ) public int s i z e ( ) { return s i z e ; // T e i l a u f a b e b ) private void addbefore ( S t r i n g o, Entry e ) { i f ( o!= null ) { Entry newentry = new Entry ( o, e, e. p r e v i o u s ) ; newentry. p r e v i o u s. next = newentry ; newentry. next. p r e v i o u s = newentry ; s i z e ++; public void addfirst ( S t r i n g o ) { addbefore ( o, header. next ) ; // T e i l a u f a b e c ) public Entry f i r s t ( ) { return next ( header ) ; public Entry l a s t ( ) { return prev ( header ) ; // T e i l a u f g a b e d ) public Entry next ( Entry e ) { i f ( e. next == header ) return null ; return e. next ; public Entry prev ( Entry e ) { i f ( e. p r e v i o u s == header ) return null ; return e. p r e v i o u s ; // T e i l a u f g a b e e ) public void remove ( Entry e ) { i f ( e!= header ) { e. p r e v i o u s. next = e. next ; e. next. p r e v i o u s = e. p r e v i o u s ; s i z e ; // T e i l a u f g a b e f ) public void removefirst ( ) { Entry f = f i r s t ( ) ; i f ( f!= null ) remove ( f ) ; public void removelast ( ) { Entry l = l a s t ( ) ; i f ( l!= null ) remove ( l ) ;
8 8 public S t r i n g t o S t r i n g ( ) { S t r i n g B u f f e r buf = new S t r i n g B u f f e r ( [ ) ; for ( Entry e = f i r s t ( ) ; e!= null ; e = next ( e ) ) { buf. append ( e. getelement ( ) + ) ; i f ( next ( e )!= null ) buf. append (, ) ; buf. append ( ] ) ; return buf. t o S t r i n g ( ) ;
Abgabe: (vor 12 Uhr)
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 7 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrÜbungen zum Bioinformatik-Tutorium. Blatt 6
Institut für Informatik Wintersemester 2018/19 Praktische Informatik und Bioinformatik Prof. Dr. Ralf Zimmer Übungen zum Bioinformatik-Tutorium Blatt 6 Termin: Dienstag, 27.11.2018, 11 Uhr 1. Klassen und
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrListElement (E i n f o, ListElement<E> prev, ListElement<E> next ) {
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 11 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrEinführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1
Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrAbgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 10 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrAllgemeine 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,
MehrAbgabe: (vor der Vorlesung) Aufgabe 3.1 (P) Master-Theorem
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 3 Prof. Dr. Helmut Seidl, S. Pott,
MehrAbgabe: (vor 24 Uhr)
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 Übungsblatt 8 Prof. Dr. Helmut Seidl, M. Schwarz, A. Herz,
MehrAllgemeine 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,
MehrALP II Dynamische Datenmengen Datenabstraktion (Teil 2)
ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
ECHNISCHE UNIVERSIÄ MÜNCHEN FAKULÄ FÜR INFORMAIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2007/2008 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 9 F. Forster,. Gawlitza,
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Lauftagebuch Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 21 Erstellen einer
MehrAbgabe: (vor 12 Uhr) Aufgabe 3.1 (P) Kontrollflussgraph. Zeichnen Sie für das folgende MiniJava-Programm den Kontrollflussgraphen.
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 3 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
Mehr! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 4 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
Mehra) Für das vorgegebene Programmstück ergibt sich folgendes Referenzgeflecht:
Technische Universität München WS 2011/12 Fakultät für Informatik Übungsblatt 7 Dr. C. Herzog, M. Maalej 05. Dezember 2011 Übungen zu Grundlagen der Programmierung Aufgabe 32 (Lösungsvorschlag) Für die
MehrProgrammiertechnik II Klausur SS 2018 Angewandte Informatik Bachelor
Programmiertechnik II Klausur SS 2018 Angewandte Informatik Bachelor Name Matrikelnummer Aufgabe Punkte Aufgabe Punkte Zwischensumme 1 9 2 12 3 12 4 15 48 5 23 6 13 7 20 8 16 Summe 120 Note Prof. Dr. O.
Mehr1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ ] ( ) Infix-Operator Methodenaufruf new
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
MehrÜbungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache
MehrVerkettete Listen. DVG Verkettete Listen 1
Verkettete Listen DVG2-03 - Verkettete Listen 1 Primitive typen Vorteile: werden direkt vom Prozessor unterstützt schneller Zugriff schnelle Verarbeitung Nachteile: kleine menge feste Struktur unflexibel
MehrAbgabe: (vor der Vorlesung) Aufgabe 7.1 (P) Binomial Heap
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 7 Prof. Dr. Helmut Seidl, S. Pott,
MehrKonkatenation zweier Listen mit concat
Ein Datenmodell für Listen Konkatenation zweier Listen mit concat Was ist an der Konkatenation etwas unschön? Man muss die vordere Liste einmal durchgehen, um den letzten Nachfolger (urspr. null zu erhalten,
MehrProgrammierung WS14/15 Lösung - Präsenzübung C. Aschermann, F. Frohn, J. Hensel, T. Ströder
Prof. aa Dr. J. Giesl C. Aschermann, F. Frohn, J. Hensel, T. Ströder Aufgabe 1 (Programmanalyse): (14 + 6 = 20 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen Sie hierzu
MehrALP II Dynamische Datenmengen Datenabstraktion
ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrAllgemeine Hinweise:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 12/13 Einführung in die Informatik I Wiederholungsklausur Prof. Dr. Helmut Seidl, A. Lehmann,
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 5 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrÜbungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2018 Prof. Dr. Wolfram Burgard Andreas Kuhner Daniel Büscher Übungsblatt 13 Abgabe / Besprechung
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrEinführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,
Mehrs(x, i) = i h 2 (x), i N 0
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 5 Prof. Dr. Helmut Seidl, S. Pott,
MehrADT: Verkettete Listen
ADT: Verkettete Listen Motivation I public class Bruch{ int zaehler, nenner; public Bruch(int zaehler, int nenner) { this.zaehler= zaehler; this.nenner = nenner; Konstruktor zum Initialisieren der Werte
MehrHochschule Augsburg, Fakultät für Informatik Name:... Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6
Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6 Datum, Uhrzeit: 24. 01. 2011, 10.30 Uhr Semester: IN1 Note:... Prüfer: Prof. Meixner Dauer: 60 Min. Hilfsmittel: keine Punkte:... Diese Prüfung
Mehr12.3 Ein Datenmodell für Listen
Zweiter Versuch: Wir modellieren ein Element der Liste zunächst als eigenständiges Objekt. Dieses Objekt hält das gespeicherte Element. Andererseits hält das Element- Objekt einen Verweis auf das nächste
MehrTechnische Universität München WiSe 2018/19 Fakultät für Informatik Übungsblatt 6 Dr. Ch. Herzog 26. November 2018
Technische Universität München WiSe 2018/19 Fakultät für Informatik Übungsblatt 6 Dr. Ch. Herzog 26. November 2018 Übungen zu Grundlagen der Programmierung Aufgabe 19 (Lösungsvorschlag) Rekursive Datenstruktur
Mehr4.2 Daten und Datenstrukturen
4.2 Daten und Datenstrukturen Daten Fundamentale Objekte, die in der Rechenanlage erfasst gespeichert ausgegeben (angezeigt, gedruckt) bearbeitet gelöscht werden können. Beispiele: Zahlen, Zeichenfolgen
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 16 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Fragen zum zweiten Übungsblatt? 2. Vorbesprechung des dritten Übungsblatts 3. Beispielaufgaben
MehrAlgorithmen und Programmierung III
Musterlösung zum 5. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Implementieren von ADTs Testlauf der Klasse TestDeque in der z05a1.jar: 10 Punkte
MehrProgrammierung WS12/13 Lösung - Präsenzübung M. Brockschmidt, F. Emmes, C. Otto, T. Ströder
Prof. aa Dr. J. Giesl M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Aufgabe 1 (Programmanalyse): (9 + 1 = 10 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen Sie hierzu
MehrProbeklausur 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
MehrADT: Verkettete Listen
ADT: Verkettete Listen Abstrakter typ - Definition public class Bruch int zaehler, nenner; public Bruch(int zaehler, int nenner) this.zaehler = zaehler; this.nenner = nenner; Konstruktor zum Initialisieren
MehrInformatik II Übung 5 Gruppe 3
Informatik II Übung 5 Gruppe 3 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 5 Leyna Sadamori 29. März 2017 1 Administrativ Die Übung am 5. April fällt aus! Bitte in die Übung in HG G 3
MehrKapitel 5: Iterierbare Container
Kapitel 5: Iterierbare Container Foreach-Schleife Interface Iterator Interface Iterable Iterator-Schleife und Foreach-Schleife Generische Liste mit Iteratoren Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik
MehrKlausur Software-Entwicklung März 01
Aufgabe 1: minimaler Punktabstand ( 2+5 Punkte ) Matrikelnr : In einem Array punkte sind Koordinaten von Punkten gespeichert. Ergänzen Sie in der Klasse Punkt eine Klassen-Methode (=static Funktion) punktabstand,
Mehr// Objekt-Methoden: public void insert(int x) { next = new List(x,next); } public void delete() { if (next!= null) next = next.next; } public String
// Objekt-Methoden: public void insert(int x) { next = new List(x,next); } public void delete() { if (next!= null) next = next.next; } public String tostring() { String result = "["+info; for(list t=next;
MehrLö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)
MehrInnere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.
Innere Klassen Innere Klassen Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Literatur: Java Tutorial & Arnold, K., Gosling, J. und Holmes,D... Page 1 Innere Klassen Der erste
MehrInformatik 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
MehrALP II Dynamische Datenmengen
ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung
Mehr7. Verkettete Strukturen: Listen
7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Version: 4. Jan. 2016 Vergleich: Schwerpunkte Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++):
MehrProgrammiertechnik Übungen zu Klassen & -methoden
Programmiertechnik Übungen zu Klassen & -methoden Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Übung 1 Ein Verfahren, den größten gemeinsamen Teiler (ggt) zweier Zahlen a und b, a
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Datenstruktur Liste Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 42 Formale Definition
MehrAllgemeine Hinweise:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Endtermklausur Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrInstitut 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 6 Prof. R. Westermann, A. Lehmann, R.
MehrAllgemeine Hinweise:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 12/13 Einführung in die Informatik I Wiederholungsklausur Prof. Dr. Helmut Seidl, A. Lehmann,
MehrKapitel 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
Mehr7.0 Arbeiten mit Objekten und Klassen
252-0027 Einführung in die Programmierung I 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved.
Mehr3. Übungsblatt zu Algorithmen I im SoSe 2017
Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799
MehrÜbung 10: Dynamische Datenstrukturen und Rekursion
Übung 10: Dynamische Datenstrukturen und Rekursion Abgabetermin: TT.MM.JJJJ Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben
MehrInformatik II Übung 5
Informatik II Übung 5 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 28.3.2018 Carina Fuss 28.3.2018 1 Übung 5 Administratives/Tipps zu Eclipse Nachbesprechung Übung 4 kurze Demo zu Stacks Java Pakete Call
Mehr16. Dynamische Datenstrukturen
Datenstrukturen 6. Dynamische Datenstrukturen Eine Datenstruktur organisiert Daten so in einem Computer, dass man sie effizient nutzen kann. Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange
Mehr16. Dezember 2004 Dr. M. Schneider, P. Ziewer
Technische Universität München WS 2004/2005 Fakultät für Informatik Lösungsvorschläge zu Blatt 8 A. Berlea, M. Petter, 16. Dezember 2004 Dr. M. Schneider, P. Ziewer Übungen zu Einführung in die Informatik
MehrADT: Verkettete Listen
ADT: Verkettete Listen Abstrakter typ - Definition public class Bruch{ int zaehler, nenner; public Bruch(int zaehler, int nenner) { this.zaehler = zaehler; this.nenner = nenner; Konstruktor zum Initialisieren
MehrSoftware 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
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2006/2007 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 3 F. Forster, M.
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de
MehrTutoraufgabe 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
MehrProgrammiertechnik II Klausur SS 2017 Angewandte Informatik Bachelor
Programmiertechnik II Klausur SS 2017 Angewandte Informatik Bachelor Name Matrikelnummer Aufgabe Punkte Aufgabe Punkte Zwischensumme 1 6 2 8 3 14 4 22 5 16 66 6 24 7 13 8 17 Summe 120 Note Prof. Dr. O.
MehrInstitut fu r Informatik
Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2015/16 Aufgabenblatt 6 23.11.2014
MehrSoftware 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
MehrAbgabe: (vor 12 Uhr)
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 Übungsblatt 1 Prof. Dr. Helmut Seidl, M. Schwarz, A. Herz,
MehrWintersemester 2004/ Januar Aus der Vorlesung sind Datenstrukturen zur Repräsentation von Wäldern disjunkter Mengen bekannt.
Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim
MehrÜ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
Mehr1. 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
MehrAbgabe: (vor 24 Uhr) Aufgabe 12.1 (P) Polymorphie Gegeben seien folgende Java-Klassen:
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 Übungsblatt 12 Prof. Dr. Helmut Seidl, M. Schwarz, A. Herz,
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN. Abgabe: (vor der Vorlesung)
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2008/09 Einführung in die Informatik 2 Übungsblatt 6 Prof. Dr. Helmut Seidl, T. M. Gawlitza,
MehrEinführung in die Informatik 2
Einführung in die Informatik 2 Listen & Bäume Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 SvenKosub@uni-konstanzde Sprechstunde: Freitag, 14:00-15:00 Uhr, onv Sommersemester
MehrInformatik 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,
Mehr5.3 Doppelt verkettete Listen
5.3 Doppelt verkettete Listen Einfach verkettete Listen unterstützen das Einfügen und Löschen am Anfang in konstanter Zeit; für das Einfügen und Löschen am Ende benötigen sie jedoch lineare Laufzeit Doppelt
MehrProgrammiertechnik II Klausur WS 2017/18 Angewandte Informatik Bachelor
Programmiertechnik II Klausur WS 2017/18 Angewandte Informatik Bachelor Name Matrikelnummer Aufgabe Punkte Aufgabe Punkte Zwischensumme 1 10 2 8 3 12 4 20 5 8 58 6 14 7 20 8 12 9 16 Summe 120 Note Prof.
MehrÜbungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit
Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList
MehrFallstudie: Online-Statistik
Fallstudie: Online-Statistik Ziel: Klasse / Objekt, welches Daten konsumiert und zu jeder Zeit Statistiken, z.b. Mittelwert, Varianz, Median (etc.) ausgeben kann Statistics s = new Statistics(maxSize);...
MehrTutoraufgabe 1 (Implementierung eines ADTs):
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Übungsblatt (Abgabe.05.0) F. Corzilius, S. Schupp, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je bis Studierenden
MehrProgrammiertechnik II Klausur SS 2017 Angewandte Informatik Bachelor
Programmiertechnik II Klausur SS 2017 Angewandte Informatik Bachelor Name Matrikelnummer Aufgabe Punkte Aufgabe Punkte Zwischensumme 1 6 2 8 3 14 4 22 5 16 66 6 24 7 13 8 17 Summe 120 Note Prof. Dr. O.
MehrInformatik II Übung 5 Gruppe 4
Informatik II Übung 5 Gruppe 4 (Folien teils von Christian B. und Christelle G.) Lukas Burkhalter lubu@inf.ethz.ch Informatik II Übung 5 Lukas Burkhalter 27. März 2018 1 Nachbesprechung Letzte Übung (4)
MehrKapitel 2: Datentyp Liste
Kapitel 2: Datentyp Liste Einleitung Listen-Interface Liste als Feld: ArrayList Einfach verkettete Listen Hilfskopfknotentechnik Liste als einfach verkettete Liste: LinkedList Doppelt verkettete Listen
MehrEffiziente verkettete Listen
Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Verkettete Listen: Wiederholung Einführung in die Informatik
MehrInstitut 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
MehrAbgabe: (vor 12 Uhr)
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 Übungsblatt 2 Prof. Dr. Helmut Seidl, M. Schwarz, A. Herz,
MehrDatum, Uhrzeit: , Uhr Semester: I1 Note:... Prof. Dr. G. Meixner
Prüfung "Programmieren 1", IN1bac, WS 17/18 Seite 1 von 7 Datum, Uhrzeit: 26. 01. 2018, 10.30 Uhr Semester: I1 Note:... Prüfer: Prof. Dr. G. Meixner Dauer: 60 Min. Hilfsmittel: keine Punkte:... Diese Prüfung
MehrPrü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