Hallo
Ich würde gerne 2 Mengen vereinigen und habe dazu follgende Funktion geschrieben:
die enthalten Funktion gibt True zurück falls die das Element bereits in der neuen Menge enthalten ist.
Allerdings liefert mein Testlauf Logikfehler und ich komm einfach nicht drauf.
Hier ein Auszug aus dem Test:
Menge1:
Element 0: 1
Element 1: 2
Element 2: 3
Menge2:
Element 0: 3
Element 1: 4
Element 2: 5
Durchschnitt: Element 0: 3
Vereinigung: Element 0: 1
Element 1: 2
Element 2: 3
Element 3: 0 // Warum bekomme ich hier eine 0 und nicht meine gewünschte 4
Element 4: 5
Ich würde gerne 2 Mengen vereinigen und habe dazu follgende Funktion geschrieben:
Code:
public EndlicheMenge vereinigung(EndlicheMenge m) {
EndlicheMenge neueMenge = new EndlicheMenge(this.menge.length + m.menge.length);
for(int i = 0; i < this.elemente; i++) {
neueMenge.menge[i] = this.menge[i];
neueMenge.elemente++;
}
for(int j = 0; j < m.elemente; j++) {
if(!neueMenge.enthalten(m.menge[j])) {
neueMenge.menge[elemente] = m.menge[j];
neueMenge.elemente++;
}
}
return neueMenge;
}
die enthalten Funktion gibt True zurück falls die das Element bereits in der neuen Menge enthalten ist.
Allerdings liefert mein Testlauf Logikfehler und ich komm einfach nicht drauf.
Hier ein Auszug aus dem Test:
Menge1:
Element 0: 1
Element 1: 2
Element 2: 3
Menge2:
Element 0: 3
Element 1: 4
Element 2: 5
Durchschnitt: Element 0: 3
Vereinigung: Element 0: 1
Element 1: 2
Element 2: 3
Element 3: 0 // Warum bekomme ich hier eine 0 und nicht meine gewünschte 4
Element 4: 5
Zuletzt bearbeitet: