CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Größe: px
Ab Seite anzeigen:

Download "CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)"

Transkript

1 CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Datentypen und Datenstrukturen Selbst definierte Datenstrukturen Innere Klassen Seite 1

2 Typen: 1. Kasper 2. Prinzessin 3. Großmutter Datentypen und Datenstrukturen Datenstrukturen: realisieren die Typen, sie agieren hinter den Kulissen Seite 2

3 Datentyp / Datenstruktur Typ / Datentyp / abstrakter Datentyp Sicht von außen / Sicht des Anwenders (Daten-) Typ ist charakterisiert durch sein Verhalten (oft) durch Interface (Schnittstelle) beschreibbar kann immer durch Spezifikation beschrieben werden Datenstruktur innere Sicht / Sicht des Implementierers Struktur / Aufbau / Organisation von Daten Ich bin ein Stack! 5 2 push pop top Seite 3

4 Datentyp / Datenstruktur Datentyp / Datenstruktur / Interface public interface Stack { int top(); void push(int x); void pop(); public class ArrayStack implements Stack { private int a[]; private int count; public void push(int x) {... public void pop() {... Seite 4

5 Datentyp / Datenstruktur Datenstrukturen und Kollektionstypen Datentyp-Sicht der Liste: Kollektionstypen: Kollektion mit einem bestimmten Datentypen die Kollektionen Verhalten (definierte Reihenfolge) (beliebiger) Elemente verwalten Beispiele: Liste, Menge, Abbildung, Stack, Warteschlangen,... gibt mir Dein erstes Element Kollektionstypen erfordern die Datentyp Liste Organisation ihrer Elemente in Datenstrukturen Weitere Beispiele Datenstruktur Datenstruktur-Sicht der Liste: linear über Verweise verkette Speicherbereiche Feld Liste Baum... umfasst Knoten und Verweise Seite 5 Datenstruktur Liste

6 Datentyp / Datenstruktur Collection Framework: Datenstrukturen hinter der Fassade von Datentypen Datentyp Liste Datenstruktur Liste LinkedList Datentyp Liste Datenstruktur Feld Die Begriffe Datenstruktur und Datentyp werden (leider) nicht immer klar getrennt. Bei der Datenstruktur steht die Speicherorganisation im Vordergrund, beim Datentyp die Schnittstelle. Aber: Die Schnittstelle legt eine bestimmte Speicherorganisation nahe und die Speicherorganisation ermöglicht eine bestimmte Schnittstelle. Seite 6 ArrayList

7 Datenstruktur Baum Seite 7

8 Datenstruktur Baum Bäume: zykelfreie Graphen Knoten Kanten (eventuell gerichtet zu den Kindern / Nachfolgern) baumartige Datenstrukturen: Knoten: Speicherbereiche Kanten: Verweise Einsatz baumartiger Datenstrukturen Implementierung von schwach sortierten Datentypen Darstellung hierarchischer Information (z.b. Syntaxbäume) etc. Bäume: zykelfreie verbundene Graphen + 1 Seite Syntaxbaum zu (1-4)+7

9 Datenstruktur Baum Binäre Bäume Knoten haben maximal 2 Nachfolger binäre Suchbäume Knoten enthalten Informationen Informationen kommen nicht doppelt vor linke Nachfolger enthalten kleine Info rechte Nachfolger enthalten größere Info Einsatz binärer Suchbäume schwache Sortierung für Datenstrukturen in denen gesucht werden muss; z.b. Verzeichnisse oder Menge (schon drin?) Suche im Suchbaum schneller als in unsortierter Liste Einfügen schneller als in einer sortierten Liste Seite binärer Suchbaum Suche nach 5: - 5 < 6 => links - 5 > 3 => rechts - 5 = 5 => gefunden

10 Datenstruktur Baum im Collections Framework Bäume im Collections- Framework java.util.treeset<e> Set <<interface>> SortedSet <<interface>> Mengen-Implementierung die einen Baum als Datenstruktur verwendet und die Ordnung der Elemente (compareto) bei der Speicherung berücksichtigt. Vorteil gegenüber HashSet: Elemente können sortiert durchlaufen werden. Nachteil gegenüber HashSet: Operationen sind etwas langsamer AbstractSet TreeSet HashSet Map java.util.treemap<k,v> Abbildungs-Implementierung die einen Baum als Datenstruktur verwendet und die Ordnung der Schlüssel (compareto) bei der Speicherung berücksichtigt. Vorteil gegenüber HashMap: Schlüssel können sortiert durchlaufen werden. Nachteil gegenüber HashMap: Operationen sind langsamer Seite 10 <<interface>> SortedMap <<interface>> AbstractMap TreeMap HashMap

11 Datenstruktur Baum im Collections Framework Beispiel: Vorkommen von Worten in Dateien Wortvorkommen: Wort ~> ( DateiName ~> { (Zeile, Spalte) Wort kommt in Zeile an Spalte vor ) static TreeMap< String, TreeMap<String, TreeSet<LineColumn>>> wordoccurrance = new TreeMap<String, TreeMap<String, TreeSet<LineColumn>>>(); Der Typ der Variablen wird mit Klassen definiert (statt mit Interfaces, wie die allgemeine Regel empfiehlt), da der Algorithmus die besonderen Fähigkeiten der Baum-Implementierungen benötigt. Seite 11

12 Datenstruktur Baum im Collections Framework File f = null; List<File> filelist = new ArrayList<File>(); Wortvorkommen feststellen while (true) { f = choosefile("text-datei waehlen"); if (f == null) { break; filelist.add(f); for (File file : filelist) { String filename = file.getcanonicalpath(); Scanner scan = new Scanner(file); int linenr = 0; while (scan.hasnextline()) { String inputline = scan.nextline(); linenr++; String[] words = inputline.split("\\s"); int fromindex = 0; for (String word : words) { if (!word.matches("([a-za-z])([a-za-z0-9-_] &[a o u A O U]uml;)*")) { continue; TreeMap<String, TreeSet<LineColumn>> wordocc = wordoccurrance.get(word); if (wordocc == null) { wordocc = new TreeMap<String, TreeSet<LineColumn>>(); wordoccurrance.put(word, wordocc); TreeSet<LineColumn> filepos = wordocc.get(filename); if (filepos == null) { filepos = new TreeSet<LineColumn>(); wordocc.put(filename, filepos); int cloumnpos = inputline.indexof(word, fromindex); filepos.add(new LineColumn(lineNr, cloumnpos)); fromindex = cloumnpos; Seite 12

13 Datenstruktur Baum im Collections Framework Wortvorkommen ausgeben for (String word : wordoccurrance.keyset()) { System.out.println("Word: " + word); TreeMap<String, TreeSet<LineColumn>> fileocc = wordoccurrance.get(word); for (String fn : fileocc.keyset()) { System.out.println("File: " + fn); for (LineColumn lc : fileocc.get(fn)) { System.out.print(" " + lc + ","); System.out.println(); Seite 13

14 Datenstruktur Baum im Collections Framework final class LineColumn implements Comparable<LineColumn> { private int line; private int column; Wortvorkommen speichern public LineColumn(int line, int column) { this.line = line; this.column = column; public boolean equals(linecolumn lc) { return line == lc.line && column == public boolean equals(object o) { if (o instanceof LineColumn) { return equals((linecolumn) o); else { return public String tostring() { return "Line: " + line + " Column: " + public int hashcode() { return line * column + line + public int compareto(linecolumn o) { return this.line!= o.line? this.line - o.line : this.column - o.column; Seite 14

15 Selbst definierte Datenstrukturen Seite 15

16 Datentyp Menge implementiert als Baum Interface Menge definiert Funktionalität Implementierung als Suchbaum: BaumMenge Menge <<interface>> enthaelt(int): boolean einfuege(int): void realisiert die Funktionalität mit einem Suchbaum <<realize>> BaumMenge 0..2 Knoten 0..1 wert: int Eine Instanz von BaumMenge enthält maximal einen Knoten (der anker genannt wird) Jeder Knoten enthält maximal zwei andere Knoten. anker enthaelt(int): boolean einfuege(int): void Binärbaum-Implementierung einer Menge von int-werten Seite 16

17 Datentyp Menge implementiert als Baum public interface Menge { public void einfuege(int x); public boolean enthaelt(int x); Interface Menge Implementierung BaumMenge public class BaumMenge implements Menge { public boolean enthaelt(int x) { return enthaeltr(x, anker); public void einfuege(int x) { if ( anker == null ) anker = new Knoten(x,null,null); else einfueger(x, anker); private Knoten anker = null; private static class Knoten { int wert; Knoten links; Knoten rechts; Knoten(int e, Knoten links, Knoten rechts){ wert = e; this.links = links; this.rechts = rechts; Seite 17 Methoden: Rekursion über die Baumstruktur. statische innere Klasse: Lokale Klassendefinition (statisch: weil ohne Bezug zu einem Objekt.) Knoten ist eine rein interne Hilfsklasse

18 Datentyp Menge implementiert als Baum Interface Menge Implementierung BaumMenge private void einfueger(int x, Knoten k) { if ( x == k.wert ) return; // schon drin else if (x < k.wert ) { if ( k.links == null ) k.links = new Knoten(x,null,null); else einfueger(x, k.links); else { if (x > k.wert ) if ( k.rechts == null ) k.rechts = new Knoten(x,null,null); else einfueger(x, k.rechts); Methoden: Rekursion über die Baumstruktur. Seite 18

19 Iterierbare Menge java.lang interface Iterable<T> Iterierbare Klassen haben eine Methode iterator, die einen Iterator über einen Element-Typ T liefert. interface Iterable<T> ist Bestandteil der Klassenbibliothek Iterator<T> iterator(); public interface Menge extends Iterable<Integer> { public void einfuege(int x); public boolean enthaelt(int x); Jede Implementierung von Menge ist eine iterierbare Klasse mit der Methode iterator, die einen Iterator über Integer liefert iterator 1, 3, 5, 6, 9, Seite 19 Der Iterator könnte z.b. einen InfixDurchlauf der Knoten liefern. Infix: erst links, dann Mitte, dann rechts

20 Iterierbare Menge / Programmrahmen public class BaumMenge implements Menge {... public Iterator<Integer> iterator() { return new BaumIterator(); class BaumIterator implements Iterator<Integer> { public boolean hasnext() {????? public Integer next() {????? public void remove() { throw new UnsupportedOperationException(); Seite 20 nicht statische innere Klasse: Lokale Klassendefinition mit Bezug zu einem Objekt. (Ein Iterator muss sich auf den Baum beziehen, den er durchlaufen soll.) remove wollen wir nicht implementieren!

21 Iterierbare Menge public class BaumMenge implements Menge {... private Knoten anker = null;... public Iterator<Integer> iterator() { return new BaumIterator(); class BaumIterator implements Iterator<Integer> { LinkedList<Knoten> l; BaumIterator() { l = new LinkedList<Knoten>(); infix(anker); private void infix(knoten k) { if ( k == null ) return; infix(k.links); l.add(k); infix(k.rechts); public boolean hasnext() { return! l.isempty(); public Integer next() { Knoten k = l.getfirst(); l.removefirst(); return k.wert; public void remove() { throw new UnsupportedOperationException(); Der Iterator speichert intern eine Liste der Knoten. in nicht-statischen Klassen ist ein Bezug auf das umfassende Objekt möglich. Hier ist das umfassende Objekt eine Instanz von BaumMenge und der Bezug geht zur Objekt-Variable anker dieser Instanz. remove wird nicht unterstützt. Seite 21

22 Iterierbare Menge durchlaufen BaumMenge b = new BaumMenge(); for (Integer i : b) System.out.println(i); Iterator<Integer> iter = b.iterator(); while ( iter.hasnext() ) { System.out.println(iter.next()); ausführliche Form Kurzform Seite 22

23 1 Innere Klassen Seite 23

24 Statische innere Klasse / geschachtelte Klasse Statische innere Klassen unterscheiden sich nur in der Sichtbarkeit / Programmorganisation von anderen normalen Klassen class A In Methoden der statischen inneren Klasse können (nur) statische Komponenten der äußeren Klasse verwendet werden A.x bezieht sich auf eine Komponente der äußeren Klasse kurz x wenn x eindeutig ist { static T x; static class I { T x = A.x; Seite 24

25 Nicht-statische innere Klasse Nicht-statische innere Klasse (kurz: innere Klasse): jedes Exemplar hat einen (impliziten) Bezug zum erzeugenden Objekt class BaumIterator implements Iterator<Integer> { LinkedList<Knoten> l; private BaumIterator() { l = new LinkedList<Knoten>(); infix(baummenge.this.anker); // oder kurz: infix(anker);... etc.... kein static! BaumMenge.this: Zeiger auf den Erzeuger anker ist eindeutig, darum hier anker ~ BaumMenge.this.anker Seite 25

26 Nicht-statische innere Klasse In Methoden der inneren Klasse: this zeigt auf ein Objekt der inneren Klasse ( auf mich selbst ) A.this zeigt auf ein Objekt der äußeren Klasse (auf meinen Erzeuger ) nicht statische innere Klasse Exemplar I() der new äußeren...new I() Klasse A... A-Objekt class A {... class I { Exemplar der inneren Klasse I this...this... A.this...A.this... Struktur der Klassendefinitionen I-Objekt Seite 26

27 Statische / Nicht-statische innere Klasse public class BaumMenge implements Menge { //... public Iterator<Integer> iterator() { return new BaumIterator(this); private static class BaumIterator implements Iterator<Integer> { Normalerweise kann ein Bezug zum erzeugenden Objekt auch explizit gesetzt werden! LinkedList<Knoten> l; private BaumIterator(BaumMenge m) { l = new LinkedList<Knoten>(); infix(m.anker); //... Seite 27

28 Anonyme innere Klasse Anonyme Klasse: interface INF { public TR m(tp x);... Klasse mit Definition und Instanzierung in einem Anonyme Klassen sind immer innere Klassen Instanzierungen sind immer innerhalb einer Methode und damit in einer anderen Klasse anonyme Klasse: Instanzierungs-Stelle = Definitionsstelle class C {... void f() { INF y = new... ; = class C { class Y implements INF { public TR m(tp x) { Anonyme Klassen sind immer nicht statische innere Klassen Entwurfsentscheidung Java INF () { public TR m(tp x){ ; void f() { INF y = new Y(); Seite 28

29 Nicht-statische innere Klasse in Methoden (Nicht statische) Klassen können innerhalb von Methoden definiert werden sie können anonym sein, müssen aber nicht können nur auf Variablen der umfassenden Methode zugreifen, wenn diese final sind. Wichtigste (bekannteste) Anwendung: GUIs / ActionListener Seite 29

30 Nicht-statische innere Klasse in Methoden public class Outer { public interface Int2Int { int f(int x); private int x; public Outer(int x) { this.x = x; public Int2Int genf (final int y) { return new Int2Int() { public int f(int a) { return a+x+y; ; Methoden-Variable public static void main( String[] args){ Int2Int ff = (new Outer(1)).genF(2); System.out.println(ff.f(3)); Ausgabe 6 Seite 30

31 Nicht-statische innere Klasse in Methoden public interface Int2Int { int f(int x); public final class Outer { private int x; public Outer(int x) { this.x = x; public Int2Int genf(final int y) { class Inner implements Int2Int { public int f(int a) { return a + x + y; return new Inner(); public static void main(string[] args) { Int2Int ff = (new Outer(1)).genF(2); System.out.println(ff.f(3)); Das Gleiche mit einer benannten inneren Klasse Seite 31

32 Anonyme innere Klasse Anonyme innere Klassen public class Outer { haben keine eigene Konstruktordefinition können Objektvariablen definieren private int x; public Outer(int x) { this.x = x; public Int2Int genf (final int y) { return new Int2Int() { private int b; public int f(int a) { int temp = b; b = a; return x+y+temp; ; Ausgabe? public static void main( String[] args){ Int2Int ff = (new Outer(1)).genF(2); System.out.println(ff.f(3)); System.out.println(ff.f(3)); Seite 32

33 Innere Klasse: Übersicht innere Klasse: Klasse die innerhalb einer anderen definiert wird statische innere / geschachtelte Klasse (static inner class / nested class) Innere / geschachtelte Klasse ist ohne Bezug auf ein Objekt Die Definition der inneren Klasse kann nur statische Komponenten der äußeren Klasse nutzen Statische innere Klassen haben einen Bezug zum statischen Anteil des definierenden Kontexts (der Klasse in der sie definiert sind: ÄussereKlasse...) (nicht statische) innere Klasse (inner class) Innere Klasse mit Bezug zu einem Objekt der äußeren Klasse (seinem Erzeuger) Die Definition der inneren Klasse kann statische und nicht statische Komponenten der äußeren Klasse nutzen. Innere Klassen dürfen (im Gegensatz zu statischen inneren Klassen) keine statischen Komponenten definieren. (Statisch heißt ohne Bezug zu einem Objekt, Objekt-Bezug widerspricht dem Konzept einer nicht-statischen Klasse) Innere Klassen haben eine Bezug zum definierenden Kontext (dem Objekt das sie erzeugt: ÄussereKlasse.this... ) Seite 33

34 Datenstrukturen / Java-Sprachelemente Datenstrukturen bestehen meist aus Knoten die über Referenzen miteinander verknüpft sind werden (nicht nur) zur Realisation eines Kollektions-Typs verwendet Kollektionen bieten Iteration über ihre Elemente Iteratoren benötigen einen Bezug zu ihrem Erzeuger: der Kollektion über die sie iterieren sollen. Java-Sprachelemente Kollektionen implementieren Iterable Iteratoren implementieren Iterator Knoten werden als innere Klassen definiert Iteratoren werden als innere Klassen definiert Kollektions-Typen implementieren die Iterable-Schnittstelle Varianten Klassendefinition in Klasse: statisch nicht statisch nicht statisch, anonym Seite 34

ALP II Dynamische Datenmengen

ALP 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

Mehr

Kapitel 5: Iterierbare Container

Kapitel 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

Mehr

Inner Class. 1 public class OuterClass { 2 private int var; 3 public class InnerClass { 4 void methoda() {}; 5 } 6 public void methodb() {}; 7 }

Inner Class. 1 public class OuterClass { 2 private int var; 3 public class InnerClass { 4 void methoda() {}; 5 } 6 public void methodb() {}; 7 } Inner Class 1 public class OuterClass { 2 private int var; 3 public class InnerClass { 4 void methoda() {}; 5 } 6 public void methodb() {}; 7 } Instanz von InnerClass kann auf alle Member von OuterClass

Mehr

Info B VL 14: Java Collections/Reflections

Info B VL 14: Java Collections/Reflections Info B VL 14: Java Collections/Reflections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 14: Java Collections/Reflections

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

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

II.4.6 Collections - 1 -

II.4.6 Collections - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.6 Collections - 1 - Typische Datenstrukturen

Mehr

Algorithmen und Datenstrukturen CS1017

Algorithmen und Datenstrukturen CS1017 Algorithmen und Datenstrukturen CS1017 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Datenstrukturen I: Lineare Sequenzen / Listen Datenstrukturen für Sequenzen Sequenzen in der Java-API:

Mehr

Kapitel 4: Bäume i. 1. Einleitung. 2. Ein Datenmodell für Listen. 3. Doppelt-verkettete Listen. 4. Bäume. 5. Das Collections-Framework in Java

Kapitel 4: Bäume i. 1. Einleitung. 2. Ein Datenmodell für Listen. 3. Doppelt-verkettete Listen. 4. Bäume. 5. Das Collections-Framework in Java Kapitel 4: Bäume i 1. Einleitung 2. Ein Datenmodell für Listen 3. Doppelt-verkettete Listen 4. Bäume 5. Das Collections-Framework in Java Prof. Dr. Peer Kröger: EiP (WS 18/19) Teil 11: Datenstrukturen

Mehr

Mengen und Multimengen

Mengen und Multimengen Überblick 21. Datenstrukturen 21.1 Einleitung 21.2 Listen 21.3 Assoziative Speicher 21.4 Bäume 21.5 Mengen 21.6 Das Collections-Framework in Java 21 Datenstrukturen 5 Mengen Einf. Progr. (WS 08/09) 870

Mehr

OCP Java SE 8. Collections

OCP Java SE 8. Collections OCP Java SE 8 Collections Collections (Interfaces) Iterable Collection Set List Queue SortedSet Deque Collection List erlaubt Duplikate und null behält die Reihenfolge Set erlaubt keine Duplikate Queue

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

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel

Mehr

Programmierzertifikat Objekt-Orientierte Programmierung mit Java

Programmierzertifikat Objekt-Orientierte Programmierung mit Java Programmierzertifikat Objekt-Orientierte Programmierung mit Java Vorlesung 07: Collections Peter Thiemann Universität Freiburg, Germany SS 2008 Peter Thiemann (Univ. Freiburg) Programmierzertifikat Objekt-Orientierte

Mehr

19 Collections Framework

19 Collections Framework Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 05: Generics Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 19 Inhalt Generics

Mehr

II.4.4 Exceptions - 1 -

II.4.4 Exceptions - 1 - n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen

Mehr

19 Collections Framework

19 Collections Framework Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.

Mehr

Einfü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. 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

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Java Generics und Java API (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Datenstrukturen In vielen Sprachen

Mehr

12 Collections Framework. Interfaces Maps and Collections. Collection Interface. Überblick. Collection = Containterklasse, die andere Objekte enthält.

12 Collections Framework. Interfaces Maps and Collections. Collection Interface. Überblick. Collection = Containterklasse, die andere Objekte enthält. Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Interfaces Maps and Collections Iterable Collection Map Vorteile: Set List Queue SortedMap

Mehr

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.

Innere 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

Mehr

Teil V. Generics und Kollektionen in Java

Teil V. Generics und Kollektionen in Java Teil V Generics und Überblick 1 Parametrisierbare Datenstrukturen in Java 2 Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 5 1 Parametrisierbare Datenstrukturen in Java Motivation für

Mehr

Grundlagen der Informatik 0

Grundlagen der Informatik 0 Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg

Mehr

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Interface Seite 1 Schnittstelle / Interface Seite 2 Spezifikation / Schnittstelle / Interface Spezifikation Beschreibung einer Komponente

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Java Generics und Java API (2/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Listen Bisher: Collections

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

Sammlungen Listen Mengen Abbildungen Algorithmen Wrapper

Sammlungen Listen Mengen Abbildungen Algorithmen Wrapper Sammlungen Listen Mengen Abbildungen Algorithmen Wrapper Pratikum SWE 2 M. Löberbauer T. Kotzmann H. Prähofer 1 Einleitung Collections sind Datenstrukturen für Sammlungen von Daten Stacks Queues Priority

Mehr

Algorithmen und Datenstrukturen CS1017

Algorithmen und Datenstrukturen CS1017 Algorithmen und Datenstrukturen CS1017 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Datenstruktur, Datentyp, Datenabstraktion Abstrakter Datentyp / Datenabstraktion Kollektionen

Mehr

Abstrakte Datentypen und Java

Abstrakte Datentypen und Java Abstrakte Datentypen und Java ƒ hehueolfn ƒ 5HDOLVLHUXQJYRQ$'7 NRQNUHWH'DWHQW\SHQ %HLVSLHO5DWLRQDOH=DKO ƒ 3DUDPHWULVLHUWH'DWHQW\SHQ %HLVSLHO)HOG6RUWLHUWHV)HOG ƒ 6FKQLWWVWHOOHQNRQ]HSW ƒ :LFKWLJH'DWHQW\SHQLQ-DYD

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einfü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

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Einfü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

Mehr

public interface Stack<E> { public void push(e e); public E pop();

public interface Stack<E> { public void push(e e); public E pop(); ADS Zusammenfassung René Bernhardsgrütter 02.04.2012 1 Generics Gewähren Typsicherheit und können für verschiedene Datentypen ohne Casts verwendet werden. Beim Erstellen der Klasse werden Platzhalter für

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Klassenattribute und -methoden Bieniusa Software Entwicklung 1 2/ 23 Beispiel: Klassenattribute I class Uebungsgruppe

Mehr

Punkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum.

Punkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum. Hochschule der Medien Prof Uwe Schulz 1 Februar 2007 Stuttgart Klausur Informatik 2, EDV-Nr 40303/42022 Seite 1 von 2 Name: Matr Nr: Teil 1: Keine Hilfsmittel Bearbeitungszeit: 20 Minuten Teil 1 Teil 2

Mehr

Propädeutikum Programmierung in der Bioinformatik

Propädeutikum Programmierung in der Bioinformatik Propädeutikum Programmierung in der Bioinformatik Java Collections Thomas Mauermeier 15.01.2019 Ludwig-Maximilians-Universität München Collections? Was ist eine Collection? Container für mehrere Objekte

Mehr

Technische Universität Braunschweig

Technische Universität Braunschweig Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren II Dr. Werner Struckmann 28. August 2015 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

Mehr

Lineare Datenstrukturen: Felder, Vektoren, Listen Modelle: math. Folge (a i ) i=1.. mit Basistyp T oder: [T]

Lineare Datenstrukturen: Felder, Vektoren, Listen Modelle: math. Folge (a i ) i=1.. mit Basistyp T oder: [T] Teil II: Datenstrukturen Datenstrukturen Lineare Datenstrukturen: Felder, Vektoren, Listen Modelle: math. Folge (a i ) i=1.. mit Basistyp T oder: [T] Nichtlineare Datenstrukturen: Bäume Modell(e): spezielle

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren II Dr. Werner Struckmann 16. August 2013 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

Mehr

Mengen und Multimengen

Mengen und Multimengen Überblick 17. Datenstrukturen 17.1 Einleitung 17.2 Listen 17.3 Assoziative Speicher 17.4 Bäume 17.5 Mengen 17.6 Das Collections-Framework in Java 17.7 Zusammenfassung 17 Datenstrukturen 5 Mengen Informatik

Mehr

Vorlesung 07: Collections. Peter Thiemann SS 2010

Vorlesung 07: Collections. Peter Thiemann SS 2010 Vorlesung 07: Collections Peter Thiemann Universität Freiburg, Germany SS 2010 Peter Thiemann (Univ. Freiburg) JAVA 1 / 45 Inhalt Collections Iteratoren Implementierungen Das Interface Collection Beispiel:

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Überblick Parametrisierte Datentypen mit Java Generics Java Collections Framework Parametrisierte

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Übung 3: Die generische Klasse BinärerSuchbaum in Java 1 Datenelemente der Klasse BinaererSuchbaum Das einzige Datenelelement in dieser Klasse ist die Wurzel vom Typ BinaerBaumknoten. Die Klasse BinaerBaumknoten

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

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 08: Collections Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 39 Inhalt Collections

Mehr

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 17. Juli 2015 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 7. September

Mehr

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

Nützliche Utility-Klassen des JDK

Nützliche Utility-Klassen des JDK Nützliche Utility-Klassen des JDK java.util :, Properties, I18N, Scanner java.text : Ausgabeformatierung u.a. java.util.prefs : Hierarchische Konfigurationsdaten (1.5) java.util.logging : Aufzeichnung

Mehr

Informatik II. Vordefinierte Datenstrukturen. - Abbildungen Map. Seite 1 Th Letschert, THM

Informatik II. Vordefinierte Datenstrukturen. - Abbildungen Map. Seite 1 Th Letschert, THM Informatik II Vordefinierte atenstrukturen - Listen List - bbildungen Map - Mengen Set Seite 1 Th Letschert, THM atenstrukturen atenstrukturen Sprachelemente zur strukturierten Speicherung von aten atentyp

Mehr

Institut für Programmierung und Reaktive Systeme 6. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 6. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 6. Juli 2018 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 27. August

Mehr

Einfü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 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,

Mehr

Objektorientierte Programmierung. Kapitel 21: Einführung in die Collection Klassen

Objektorientierte Programmierung. Kapitel 21: Einführung in die Collection Klassen Stefan Brass: OOP (Java), 21. Collection Klassen 1/30 Objektorientierte Programmierung Kapitel 21: Einführung in die Collection Klassen Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren II Dr. Werner Struckmann 29. August 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

Mehr

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe Maximale Größe?! Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um Dynamische Anpassung der Größe Praktische Informatik I, HWS 2009, Kapitel 10 Seite

Mehr

Wo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 338

Wo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 338 Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,

Mehr

Die abstrakte Klasse Expression:

Die abstrakte Klasse Expression: Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die

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 - ! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck

Mehr

JAVA KURS COLLECTION

JAVA KURS COLLECTION JAVA KURS COLLECTION COLLECTIONS Christa Schneider 2 COLLECTION Enthält als Basis-Interface grundlegende Methoden zur Arbeit mit Collections Methode int size() boolean isempty() boolean contains (Object)

Mehr

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

Institut für Programmierung und Reaktive Systeme 10. Mai Programmieren II. 11. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 10. Mai 2013 Programmieren II 11. Übungsblatt Hinweis: Dieses Übungsblatt enthält die zweite Pflichtaufgabe.

Mehr

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Juli 2017 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 28. August

Mehr

Objektorientierte Implementierung

Objektorientierte Implementierung Objektorientierte Implementierung 10) Verfeinern von Assoziationen mit dem Java-2 Collection Framework Softwaretechnologie, Prof. Uwe Aßmann, Prof. Heinrich Hussmann 1 Objektorientierte Implementierung

Mehr

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2)

ALP 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

Mehr

Lehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt

Lehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt Lehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt 13 30.1.2017 Threads II Aufgabe 13.1. Synchronisiertes Lesen und Schreiben Betrachten

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

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12. Heute Nachbetrachtung Wissensüberprüfung Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.2015 IT I - VO 9 1 Organisatorisches Zwischentest findet am 16.12. von 17:30 bis

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

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

Stacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012

Stacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012 , Queues & Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 19. September 2012 ODE/FHTBM, Queues & 19. September 2012 1/42 Datenstrukturen Elementare Datenstrukturen

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen

1. 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

Mehr

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Ü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

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

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

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

ALP II Dynamische Datenmengen Datenabstraktion

ALP 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

Mehr

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Ü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

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren II Dr. Werner Struckmann 31. März 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:

Mehr

7. Verkettete Strukturen: Listen

7. 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++):

Mehr

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Schwerpunkte. 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

Mehr

3 Dynamische Datenstrukturen

3 Dynamische Datenstrukturen 3 Dynamische Datenstrukturen Beispiele für dynamische Datenstrukturen sind Lineare Listen Schlangen Stapel Bäume Prof. Dr. Dietmar Seipel 128 Praktische Informatik I - Algorithmen und Datenstrukturen Wintersemester

Mehr

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

TECHNISCHE 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,

Mehr

Grundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 139

Grundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 139 Aufgabe 139 Aufgabe 139 Aufgabenstellung Stellen Sie den folgenden in Feldbaum-Darstellung beschriebenen Binärbaum a) graphisch (welcher Knoten ist die Wurzel?), b) in halbsequentieller Darstellung, c)

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

Kapitel 4: Datentyp Keller und Schlange

Kapitel 4: Datentyp Keller und Schlange Kapitel 4: Datentyp Keller und Schlange Keller (Stack) Schlange (Queue) 4-1 Definition Keller und seine Operationen Ein Keller (engl. Stack; Stapel) ist eine endliche Menge von Elementen mit einer LIFO-Organisation

Mehr

Teil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework

Teil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework Teil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Was gefällt Ihnen? Sehr ausführliches Skript Fragen / Aufgaben in der Vorlesung Praktische Beispiele Tolle Aufgabenblätter

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE38-Generics (Stand 28.09.2012) Aufgabe 1: Schauen Sie sich die generischen Klassen des Paketes java.util an. Aufgabe 2: Ausgangslage sind die folgenden

Mehr

Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur C und Objektorientierte Programmierung im WS 2003/04 (WI h103, II h105, MI h353) Zeit: 150 Minuten erlaubte Hilfsmittel:

Mehr

Dynamische Datenstrukturen

Dynamische Datenstrukturen Dynamische Datenstrukturen B-Bäume größere Datenmengen verwalten Extern speichern Art der Speicherung berücksichtigen sonst kein optimaler Datenzugriff möglich Art der Speicherung großer Datenmengen Magnetplatten

Mehr

3. Übungsbesprechung Programmkonstruktion

3. Übungsbesprechung Programmkonstruktion 3. Übungsbesprechung Programmkonstruktion Karl Gmeiner karl@complang.tuwien.ac.at November 16, 2011 K Gmeiner (karl@complang.tuwien.ac.at) 3. Übungsbesprechung PK November 16, 2011 1 / 22 Rückblick und

Mehr

Kapitel 5: Interfaces

Kapitel 5: Interfaces Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 5: Interfaces Folie 82 : Einleitung Betrachtet man die Programmierleistung für ein Produkt über einen längeren Zeitraum,

Mehr