Dies ist eine alte Version des Dokuments!
Der ADT "Set" (Menge)
Definition: Set
Der abstrakte Datentyp Set repräsentiert im mathematischen Sinne eine Menge. Eine Menge hat folgende Eigenschaften:
- Eine Menge kann beliebig viele Elemente enthalten.
- Jedes Element kann höchstens einmal vorhanden sein.
- Es kommt nicht auf die Reihenfolge der Elemente an.
Und folgende Methoden:
- Konstruktor
Set()
– erzeugt eine leere Menge einfuegen(wert: int)
– fügt den Wert wert in die Menge ein, falls er noch nicht vorhanden istentfernen(wert: int)
– entfernt den Wert wert aus der Menge, falls er vorhanden ist; andernfalls wird die Menge nicht verändert.enthaelt(wert: int): boolean
– gibttrue
zurück, wennwert
in der Menge enthalten ist, sonstfalse
.anzahl(): int
– gibt die Anzahl der Elemente in der Menge zurückistLeer(): boolean
– gibttrue
zurück, wenn die Menge leer ist, sonstfalse
.schnittmenge(s: Set): Set
– gibt eine Menge zurück, die genau die Elemente enthält, die in dieser Menge und ins
enthalten sind.vereinigungsmenge(s: Set): Set
– gibt eine Menge zurück, die genau die Element enthält, die in dieser Menge oder ins
oder in beiden enthalten sind.differenz(s: Set): Set
– gibt eine Menge zurück, die genau die Elemente enthält, die in dieser Menge, aber nicht ins
enthalten sind.untermenge(s: Set): boolean
– gibttrue
zurück, wenn jedes Element dieser Menge ins
enthalten istgleich(s: Set): boolean
– gibttrue
zurück, wenn diese Menge unds
die gleichen Elemente enthält; sonstfalse
.
Erarbeitung
Arbeite mit der Vorlage von LINK und bearbeite nachfolgende Aufgaben.
(A1) Funktionalität der Versionen
In der Vorlage sind zwei verschiedene Versionen zu finden. Der Quellcode ist nicht einsehbar. Finde heraus, ob beide Versionen die gleiche Funktionalität aufweisen. Erstelle dazu Beispielobjekte.
(A2) Operationen mit Mengen
Wähle nun eine der beiden Varianten aus und nutze sie für diese Aufgabe.
- Erstelle ein Set M = {19, 23, 1, 11, 10, 33, 9, 42, 17} und ein Set N = {10, 7, 11, 19, 2, 23, 42, 37}. Finde heraus was die Methoden
schnittmenge(s)
,vereinigungsmenge(s)
unddifferenz(s)
machen. Beschreibe die Funktionalität für das gegebene Beispiel sowie den allgemeinen Fall (schriftlich). - Die Operation
untermenge(s)
gibttrue
zurück, wenn jedes Element dieser Menge ins
enthalten ist. Überprüfe diese Funktionalität, indem du die Operation mit verschiedenen Beispielmengen testest. Achte darauf, dass alle möglichen Fälle abgedeckt sind.
- Vergleiche die Operationen des ADT Sets mit anderen Datenstrukturen (Liste, Array, …).
- Ist die Reihenfolge der eingefügten Elemente relevant?
- Wende
untermenge(s)
auf zwei gleiche Mengen an. Was passiert?
(A3) Verschiedene Varianten schneiden
- Erstelle je ein Set beider Varianten. Schneide diese beiden Sets miteinander. Beschreibe was passiert. Was passiert, wenn du sie anders herum schneidest?
- Warum ist das so? Begründe deine Beobachtung.
Filename | Filesize | Last modified |
---|---|---|
adt_set1.odp | 45.2 KiB | 30.11.2021 15:28 |
schnittdifferenzvereinigung.png | 535.6 KiB | 05.11.2021 10:24 |
schnittvereinigungdifferenz.drawio.png | 568.7 KiB | 05.11.2021 10:17 |
set01.odp | 402.8 KiB | 18.10.2021 18:27 |
set01.pdf | 209.5 KiB | 18.10.2021 18:27 |