# Abstrakter Datentyp "Map"



## DerSaugstutzen (31. Jan 2017)

Hey Leute, ich habe hier ein Aufgabenblatt(siehe Anhang) vor mir, bei dem ich mir seeeehr unsicher bin, was ich hier eigentlich gerade mache bzw. ob ich es richtig mache^^ Meine Lösungsvorschläge schreibe ich hier mal drunter. Falls da mal jemand drüberschauen könnte und mir evtl. sagen kann, ob das soweit stimmt, wäre ich sehr dankbar.

MfG

*f1: value*

Prüft, ob der gesuchte Key in der Map enthalten ist.

·        Falls ja: Liefert den mit dem Key assoziierten Wert

·        Falls nein: Liefert error

*f2: amountkeys*

Liefert die Anzahl der Keys einer Map. Falls keine vorhanden → liefert 0

*f3: has *

Prüft, ob der gesuchte Key in der Map enthalten ist.

·        Falls ja: Liefert true

·        Falls nein: Liefert false

*f4: isEmpty*

Prüft, ob Map leer ist.

·        Falls ja: Liefert true

·        Falls nein: Liefert false

*f5: gute Frage*

Es handelt sich offensichtlich um eine Konjugation, die nur true liefert, wenn beide Komponenten jeweils true sind. Allerdings komm ich so erstmal auch nicht weiter. Für tipps wäre ich sehr dankbar.


----------



## HarleyDavidson (1. Feb 2017)

f1 > Die Funktion liefert einen Error, wenn eine leere Map übergeben wird.
f5 > Knifflig, aber auch ich denke, dass die Funktion prüft ob die beiden Maps identisch sind
Könnte man "equals" also nennen


----------



## thecain (1. Feb 2017)

f1: get
f2: size
usw...
kannst du ja bei einer "realen" map schauen wie das da heisst.


----------



## DerSaugstutzen (1. Feb 2017)

@HarleyDavidson hmm also f1 liefert nur error, wenn die Map leer ist? Ist es nicht so, dass man einen bestimmten Key aufrufen will, und wenn dieser nicht existiert, wird error geliefert, unabhängig davon, ob die Map leer ist?


----------



## HarleyDavidson (1. Feb 2017)

Ich lese das so:
f1(create, k) = error
>> create liefert eine leere Map. Sucht man also nach dem Wert k in einer leeren Map, ist der Rückwert "error"
f1(put(m1, k1, v1), k2)
>> Liefert v1 zurück, wenn der Key mit dem Key2 aus dem zweiten Parameter übereinstimmt.

Daher meine Annahme.


----------



## DerSaugstutzen (1. Feb 2017)

Und wenn die Map nicht leer ist, der Key aber auch nicht existiert. Was wird dann zurückgegeben?


----------



## HarleyDavidson (1. Feb 2017)

Dann müsste das erste Axiom gelten.
Es wird "error" zurückgegeben.


----------



## DerSaugstutzen (1. Feb 2017)

Alles klar, vielen Dank


----------

