Klausur vom 25.02.2010 - A8

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Klausur vom 25.02.2010 - A8
Hallo,
ich habe mal wieder so meine Probleme mit der ADT Aufgabe…
Hat da jemand die Lösungen von a-d?
Hier meine “Lösungen”:

a) Axiome: put (s,create) = m
contains (s, put(x, m))= true //falls x== s
= contains(s,m) + put (x,m) //sonst
b) Sig: count: String x MultiSet → Integer
Axiome: count(s, create)= 0
count(s, put(x, m) = count +1 //falls x== s
= count(s,m) + put(x,m) //sonst
c) Sig: purge: String x MultiSet → MultiSet
Axiome: purge(s, create) = create
purge(s, put(x,m)) = m //falls x=s
= purge(s,m) + put(x,m) //sonst
d) put, create, purge

Also das mit + put wird wohl kaum richtig sein, aber ich aknn es auch nicht verschachteln weil das dann von den Signaturen nicht hinhaut?!
Und bei purge muss ich noch dazu sagen, dass er weiter purgen soll auch wenn er schon was gefunden hat?!
Jmd Lösungen?


https://fsi.informatik.uni-erlangen.de/forum/post/102219

Das ist so ziemlich die gleiche Aufgabe, nur dass die Methoden statt put hier add heißt und statt purge haben wir removeAll
Glaub eine Seite später wurde auch deine Aufgabe gelöst