• Keine Ergebnisse gefunden

Datenstrukturen L¨osungen+

N/A
N/A
Protected

Academic year: 2021

Aktie "Datenstrukturen L¨osungen+"

Copied!
17
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

L¨ osungen+

(2)
(3)

Eine Sammlung von Objekten sowie eine Menge zul¨assiger Operationen, die darauf zu- greifen.

Aufgabe 1.2

• Integer

• Float

• Boolean

Aufgabe 1.3

(a) L[i] O(1) (b) L.pop(i) O(n)

(c) L.pop() O(1) (d) L.append(77) O(1)

(e) L.insert(i, 77) O(n) (f) for x in L: ... O(n) Aufgabe 1.4

(a) D[k] O(1) (b) D.del(k) O(1)

(c) for k in D:

print(D[k])

O(n)

Aufgabe 1.5

Mengen sind in Python als Hash-Tabellen implementiert. Daher haben Operationen zum Nachschlagen, Einf¨ugen und L¨oschen (im Mittel) die Komplexit¨atO(1).

(a) A.add(24) O(1) (b) 27 in A O(1)

(c) A.union(B) O(m+n)

(4)

• UPN-Rechner (Postfix-Notation)

• Undo-Funktion in Textverarbeitungsprogrammen

• Browser-History

• Backtracking-Algorithmen

Aufgabe 2.2

• s.peek() liefert das oberste Element eines Stacks zur¨uck, ohne es zu entfernen.

• s.pop()liefert das oberste Element eines Stacks zur¨uck und entfernt es.

Aufgabe 2.3

(a) def push(item):

self.items.append(item)

(b) def pop():

return self.items.pop()

(c) def isEmpty__():

return self.items == []

Aufgabe 2.4

(a) a * b - (c + d) ⇒ a b * c d + - (b) c / b ** (d - a) ⇒ c b d a - ** / Aufgabe 2.5

(bottom) m, a, k (top)

Aufgabe 2.6

• Druckerwarteschlangen

• Simulationen (Verkehrsfl¨usse, Supermarktkassen, . . . )

• Puffern von Maus und Tastatureingaben in Message Queues

• Puffern von Daten zwischen asynchronen Prozessen

(5)

FIFO (First in – First out) Aufgabe 2.8

(a) def __enqueue__(self, item):

self.items.insert(0, item)

(b) def size(self):

return len(self.items)

Aufgabe 2.9 -> s, z, f, a ->

Aufgabe 2.10

from Deque import Deque def palindrome(string):

D = Deque()

for character in string:

D.addFront(character) while D.size() > 1:

if D.removeFront() != D.removeRight():

return False return True

Aufgabe 2.11

Die Adresse 0x2A verweist auf den Node bei Adresse 0x14.

Der Node bei 0x14 enth¨alt den Wert 0x3A und die Adresse 0x0F.

Der Node bei 0x0F enth¨alt den Wert 0x22 und die Adresse 0x37.

Der Node bei 0x37 enth¨alt den Wert 0x32 und die Adresse 0x00.

Die Adresse 0x00 kennzeichnet das Listenende.

Somit sind in der Liste die folgenden Bytes gespeichert:

0x3A, 0x22, 0x32

(6)

vorher:

0 1 2 3 4 5 6 7 8 9 A B C D E F 0

1

07 19

03 10 00

nachher:

0 1 2 3 4 5 6 7 8 9 A B C D E F 0

1

07 19 25 03

0D 10 00

Aufgabe 2.13 vorher:

0 1 2 3 4 5 6 7 8 9 A B C D E F 0

1

15 00 17 18 05 41 01

1C 0D 1A 12

nachher:

0 1 2 3 4 5 6 7 8 9 A B C D E F 0

1

15 00 17 18 05 41 01

1C 0D 1A 0D

Aufgabe 2.14

(a) Einf¨ugen eines Elements: O(1) (b) Suchen eines Elements: O(n)

(c) L¨oschen eines Elements: O(n) Aufgabe 2.15

Garbage Collection

(7)

class Node:

def __init__(self, data):

self.data = data self.next = None def getData(self):

return self.data def getNext(self):

return self.next def setData(self, data):

self.data = data def setNext(self, next):

self.next = next

Aufgabe 3.1

• HTML-Seiten

• Dateisysteme (sofern sie hierarchisch organisiert sind)

• Parse-Trees

Aufgabe 3.2

A

B C

D E F G

H I J K

(a) Welchen Schl¨ussel hat die Wurzel? A

(b) Welche Kinder hat der Knoten mit dem Schl¨ussel C? F, G (c) Welche Geschwister hat der Knoten H? keine

(d) Welche Eltern hat der Knoten mit dem Schl¨ussel E? B (e) Welches sind die Bl¨atter des Baums? H, E, I, J, K

(f) Welches sind die inneren Knoten des Baums? A, B, C, D, F, G (g) Welche Tiefe hat der Knoten mit dem Schl¨ussel D? 2

(h) Welche H¨ohe hat der Baum?3

(8)

Ein Baum ist entweder leer oder er besteht aus einer Wurzel und null oder mehr B¨aumen, die jeweils durch eine Kante mit der Wurzel des Elternbaums verbunden sind.

Aufgabe 3.4

balancierter Bin¨arbaum

A

B C

D E F G

H I J K

Die Tiefe der Bl¨atter unterscheiden sich h¨ochstens um 1.

Aufgabe 3.5

perfekter Bin¨arbaum

A

B C

D E F G

H I J K L M N O

Ein voller Bin¨arbaum, dessen Bl¨atter alle dieselbe Tiefe haben.

Aufgabe 3.6

vollst¨andiger Bin¨arbaum

A

B C

D E F G

H I J K L

Ein balancierter Bin¨arbaum, bei dem die tieferen Bl¨atter alle links stehen.

(9)

entarteteter Baum

A

B

C

D

Jeder Knoten hat h¨ochstens ein Kind.

Aufgabe 3.8

voller Bin¨arbaum

A

B C

D E

F G

H I

Alle inneren Knoten haben zwei Kinder.

Aufgabe 3.9

[’F’,[’T’,[],[’M’,[],[]]],[’C’,[],[’K’,[],[]]]]

Zusammengeh¨orende Klammerpaare untereinander schreiben:

[ F [ T

[ ] [ M

[ ] [ ] ]

] [ C

[ ] [ K

[ ] [ ] ] ] ]

F

T C

M K

(10)

M

A J S

Y E G

[ M [ A

[ Y [] [] [] ] [ E [] [] [] ] [ ]

]

[ J [] [] [] ] [ S

[ ]

[ G [] [] [] ] [ ]

] ]

Aufgabe 3.11

0 1 2 3 4 5 6 7 8 9 A B C D E F 0

1 2 3 4

00 0B 41 1E 2F 10 00 00 00 00 00 00 00 00 22 37 00 00 00 3A 0F 00 32 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0C 14 17 00 00 46 19 00 00 22 04 3A 00 00 32 00 00 30 00 4C 24 46 00 00 00 00 00 00 00 00 02 04 00 00 00 2E 00 00 00

22

1E

19 37

30

2E

Aufgabe 3.12

P

B W

Z S F

A U K

(a) Preorder:P B Z A S W F U K (b) Inorder: Z A B S P U F K W

(c) Postorder: A Z S B U K F W P

(11)

[5, 28, 13, 7, 9, 2, 16]:

5

28

7 9

13

2 16

Aufgabe 3.15

(a) 76

2

=b38c= 38

(b) 89

2

=b44.5c= 44

Aufgabe 3.16

(a) Die Liste muss mindestens 2·5 + 1 = 11 Elemente haben.

(b) Die Kindknoten haben die Indizes 10 und 11.

Aufgabe 3.17

Tiefe: min{k ∈N: 20<2k}= 5

Anzahl Bl¨atter: 20−(25−1−1) = 20−15 = 5 Aufgabe 3.18

3 5

7 16

13

8 4

3 5

7 16

4

8 13

(12)

2 4

18 33

10 21 21 4

18 33

10

4 21

18 33

10

4 18

21 33

10

Aufgabe 3.20

Da in vollst¨andigen Bin¨arb¨aumen alle Knoten mit einem Index gr¨osser als b6/2c = 3 Bl¨atter sind, gen¨ugt es, die 3 inneren Knoten in umgekehrter Reihenfolge so weit wie n¨otig nach unten zu tauschen.

16 12

9 4

7 3

7 abw¨arts tauschen:

16 12

9 4

3 7

12 abw¨arts tauschen:

16 4

9 12

3 7

16 abw¨arts tauschen:

3 4

9 12

16 7 3 4

9 12

7 16

(13)

E ={e1, e2, e3, e4, e5}

K ={{e1, e2},{e1, e3},{e2, e3},{e2, e4},{e4, e4}}

e1 e2

e3 e4

e5

Aufgabe 4.2

E ={e1, e2, e3, e4, e5}

K ={(e1, e3),(e2, e4),(e3, e5),(e4, e3),(e5, e3)}

e1 e2

e3 e4

e5

Aufgabe 4.3 e1: {e2, e3, e4} e2: {e1, e3, e5} e3: {e1, e2, e7, e8} e4: {e1, e6, e7, e8}

e5: {e2, e5, e8} e6: {e4, e7, e8} e7: {e3, e4, e6} e8: {e3, e4, e5, e6}

e1

e2

e3 e4

e5 e6 e7

e8

Da jede Kante in beide Richtungen verl¨auft und bei Schleifen (Eckee5) die Richtung keine Rolle spielt, k¨onnen hier die (Doppel-)Pfeile auch weggelassen werden.

(14)

e1 e2

e3 e4

e5 e6

e7

0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0

Aufgabe 4.5

(a) Wahr, denn k17 endet in e8.

(b) Falsch, denn k5 und k6 enden nicht in einer gemeinsamen Ecke.

(c) Wahr, denn e5 und e6 sind durch die Kante k11 verbunden.

(d) Falsch, denn e7 ist durchk15 mit e12 verbunden.

(e) Es handelt sich um eine unsinnige Frage, da es meines Wissens die Begriffe innere und ¨aussere Kante in der Graphentheorie nicht gibt. Es h¨atte vermutlich eine Frage

¨uber innere und ¨aussere Fl¨achen sein sollen, die hier aber nicht gestellt werden kann, da Fl¨achenbezeichnungenf1, f2, . . . fehlen.

(f) Wahr, denn es handelt sich um einen Weg, der an der Startecke endet.

(g) Falsch, denn in einem Pfad d¨urfen weder Kanten noch Ecken mehrfach vorkommen;

e8 (und e1) kommen mehfach vor.

(h) Falsch, Denn in einem Kreis d¨urfen weder Kanten noch Ecken (Ausnahme: Star- tecke=Endecke) mehrfach vorkommen. Ecke e8 ist nicht die Startecke, kommt aber zweimal vor.

(i) Wahr, denn Ecken d¨urfen in einem Weg mehrfach auftreten.

(j) Wahr, denn jede alternierende Folge inzidenter Ecken und Kanten ist ein Kanten- zug.

(k) Wahr, denn von der Ecke e10 gehen 4 Kanten aus.

(l) Falsch, denn die Anwendung des Satzes ¨uber den Grad eines Graphen ergibt:

deg(G) = 2·20 = 40. Alternative: nachz¨ahlen (viel Spass!)

(15)

te: Im Gegensatz zum Hamilton-Kreis, muss ein Hamilton-Weg nicht an den An- fangsort zur¨uckkehren; es m¨ussen bloss alle Ecken

”besucht“ werden.

(n) Wahr, denn es gibt keine Kante, die eine Ecke mit sich selbst verbindet.

(o) Wahr, denn zwischen zwei beliebigen (verschiedenen) Ecken gibt es einen Weg, der diese miteinander verbindet.

Aufgabe 4.6

Nat¨urlich k¨onnen diese Graphen auch anders dargestellt werden.

Aufgabe 4.7 (a)

(b) Nein (c) 9(9−1)

2 = 36 Kanten Aufgabe 4.8

Es kann keinen Euler-Zyklus geben, da die Knoten e1 und e4 ungeraden Grad haben.

(16)

Aufgrund der Eulerschen Formel gilt:

e−k+f = 2 44−k+ 25 = 2 44 + 25−2 =k 67 =k Aufgabe 4.10

e1

e2 e3

e01

e02 e03

Aufgabe 4.11

Nein, denn die Kanten {e2, e3} und {e7, e7} aus der Kantenmenge K0 liegen nicht in der Kantenmenge K.

Aufgabe 4.12

e1 e2 e3

e4

e5

e6

e7

Offenbar ist die Eckenmenge E0 = {e1, e5, e6, e7} mit den dazu geh¨orenden Kanten eine maximale Clique der Ordnung 4.

(17)

p= 3

p= 2

p= 2

Referenzen

ÄHNLICHE DOKUMENTE

Definiert man die zwei solche allgemeine Matrizen und man sieht leicht dass mit zwei Operationen auf das Produkt man ”nullen” Spalten erzeugen kann, also Rang(BC) 6=4. Viele Arten

Es gilt im Allgemein, dass falls man mehr als n Vektoren gegeben ist f¨ ur ein n dimen- sionalen Vektorraum, dann sind sie sicher linear abh¨

anderen Matrix ist genau gleich die Summe der Eintr¨ age der Summe der zwei Matrizen.. Falls eine Konstante multipliziert jeden Eintrag, die Summe wird dann mit dieser

Um ein Eigenraum von Dimension 3 zu haben muss die ganze Diagonale verschwinden und 3 Nullzeilen erzeugen.. Das ist der Fall bei der

Definiert man die zwei solche allgemeine Matrizen und man sieht leicht dass mit zwei Operationen auf das Produkt man nullen Spalten erzeugen kann, also Rang(BC) 6=.. Viele Arten

Es gilt im Allgemein, dass falls man mehr als n Vektoren gegeben ist f¨ ur ein n dimensio- nalen Vektorraum, dann sind sie sicher linear abh¨ angig.. Wir haben

Die Summe der Eintr¨ age einer Matrix addiert zur Summe der Eintr¨ age einer anderen Matrix ist genau gleich die Summe der Eintr¨ age der Summe der zwei Matrizen.. Falls eine

• Um das Paraboloid besser beschreiben zu k¨ onnen, bietet sich die Taylorent- wicklung um den kritischen Punkt (m 0 , q 0 ) an.. Wir parametrisieren die zu betrchtenden Kurven