Datenstrukturen Pr¨ufungsvorbereitung (Teil 1)
Aufgabe 1.1
Was ist ein Datentyp?
Aufgabe 1.2
Gib ein einfaches Beispiel f¨ur einen Datentyp.
Aufgabe 1.3
Z¨ahle drei einfache (primitive) Datentypen von Python auf.
Aufgabe 1.4
Z¨ahle drei zusammengesetzte Datentypen von Python auf.
Aufgabe 1.5
Mit welcher Python-Funktion l¨asst sich der Datentyp eines Werts bestimmen?
Aufgabe 1.6
Welche Laufzeitkomplexit¨at haben die folgenden Operationen auf dem Datentyplist in Python? Gehe davon aus, dass die Liste n Objekte enth¨alt.
(a) Den Wert an einer Listenposition auslesen (b) Den Wert an einer Listenposition ersetzen (c) Ein Element am Ende der Liste einf¨ugen (d) Ein Element im Innern der Liste einf¨ugen
(e) Ein Element am Ende der Liste entfernen (f) Ein Element im Innern der Liste entfernen (g) Alle aller Elemente der Liste durchlaufen Aufgabe 1.7
Was ist eine Schnittstelle (bezogen auf die Programmierung)?
Aufgabe 1.8
Was ist ein abstrakter Datentyp?
1
Aufgabe 2.1
Implementiere auf der Grundlage des folgenden Klassenger¨usts die unvollst¨andig definier- ten Methoden.
1 class Stack:
2
3 def __init__(self):
4 self.data = []
5
6 def push(self, item):
7 ...
8
9 def pop(self):
10 ...
11
12 def peek(self):
13 ...
14
15 def size(self):
16 ...
17
18 def isEmpty(self):
19 ...
Aufgabe 2.2
Gib den Zustand des Stacks s am Ende des folgenden Python-Programms an (¨altestes Element unten).
1 from stack import Stack
2
3 s = Stack()
4 s.push(7)
5 s.push(8)
6 s.push(4)
7 s.pop()
8 s.pop()
9 s.push(3)
10 s.push(1)
11 s.pop()
Aufgabe 2.3
Wof¨ur steht die Kurzformel LIFO?
Aufgabe 2.4
Z¨ahle drei m¨ogliche Anwendungen des abstrakten Datentyps Stack auf.
2