diff --git a/List-Queue-Stack-Set/src/AusführerSet.java b/List-Queue-Stack-Set/src/AusführerSet.java index 2e0d1dd..9eb6418 100755 --- a/List-Queue-Stack-Set/src/AusführerSet.java +++ b/List-Queue-Stack-Set/src/AusführerSet.java @@ -5,11 +5,11 @@ public class Ausf Set Set = new Set(); Set Set2 = new Set(); + Set Set3 = new Set(); Set.add(1);//fügt neue variable der Liste an Set.add(3);//fügt neue variable der Liste an Set.add(5);//fügt neue variable der Liste an - Set.add(5);//fügt neue variable der Liste an Set.add(7);//fügt neue variable der Liste an Set.add(9);//fügt neue variable der Liste an @@ -19,6 +19,8 @@ public class Ausf Set2.add(6);//fügt neue variable der Liste zweiten Liste an Set2.add(9);//fügt neue variable der Liste zweiten Liste an + Set3.add(3);//fügt neue variable der Liste dritten Liste an + Set3.add(5);//fügt neue variable der Liste dritten Liste an System.out.println(Set.contains(4)); //kontrolliert ob eine bestimme variable in der liste vorhanden ist und gibt das ergebnis aus @@ -29,8 +31,13 @@ public class Ausf Set I = Set.intersection(Set2);//fügt variablen die in beiden listen vorhanden sind in einer zusammen I.Ausgabe();//gibt diese liste aus - //Set U = Set.union(Set2); - //U.Ausgabe(); + Set U = Set.union(Set2); //fügt alle werte in beiden listen in eine zusammen + U.Ausgabe();//gibt diese liste aus + + Set D = Set.difference(Set2); //fügt alle wert in eine extra liste die nur in der ersten nicht in der zweiten liste sind + D.Ausgabe();//gibt iese liste aus + + System.out.println(Set.subset(Set3)); //Methode die kontrolliert ob alle variablen in der eingegebnene Liste auchn in der ersten Liste sind System.out.println(Set.size()); //gibt die größe der liste aus diff --git a/List-Queue-Stack-Set/src/Set.java b/List-Queue-Stack-Set/src/Set.java index eb93104..fa8d8c4 100755 --- a/List-Queue-Stack-Set/src/Set.java +++ b/List-Queue-Stack-Set/src/Set.java @@ -69,28 +69,67 @@ public class Set { } } - public Set intersection(Set s) { - Set result = new Set(); - Node current = this.start; - while(current != null) { - if(s.contains(current.wert)) result.add(current.wert); - current = current.next; + public Set intersection(Set s) { //methode die Variablen die in beiden listen vorhanden sind in einer list zusammen + Set result = new Set(); //neue Liste zur Ausgabe + Node current = this.start; //initialisiert die liste + while(current != null) { //wärend current ungleich null ist + if(s.contains(current.wert)) result.add(current.wert); //wenn die liste s den wert enthält dann wird der wert in die ausgabeliste hinzugefügt + current = current.next; //current wird zur nächsten variable } - return result; + return result; //gibt die ausgabeliste zurück } - //public Set union(Set s) { + public Set union(Set s) { //Methode die alle werte aus beiden listen in eine packt + Node current = this.start; //initialisiert die erste liste + Node current2 = s.start; //initialisiert die zweite liste + Set result = new Set(); //erstellet eine Liste zum ausgeben + result.add(current.wert); //fügt wert der ausgabeliste hinzu + + for(int i = 0; i < this.size(); i++) { + for(int j = 0; j < s.size(); j++) { + if(result.contains(current.wert) == false) { //wenn result bereits den wert enthält wird er nicht hinzugefügt + result.add(current.wert);//fügt den wert hinzu + } + if(result.contains(current2.wert) == false) { //wenn result bereits den wert enthält wird er nicht hinzugefügt + result.add(current2.wert);//fügt den wert hinzu + } + current2 = current2.next; //geht zur nächsetn variable der zweiten liste + } + current = current.next; //geht zur nächsten variable der ersten liste + current2 = s.start; //current der zweiten liste wird zum start der zweiten eingegebenen liste + } + return result; //gibt die ausgabeliste zurück + } + + public Set difference(Set s) { //methode die alle variablen die nur in der ersten nicht in der zweiten liste sind in eine extra ausgabeliste packt + Node current = this.start; //initialisiert die liste + Set result = new Set(); //erstellt neue liste zum ausgeben + + for(int i = 0; i < this.size(); i++) { + for(int j = 0; j < s.size(); j++) { + if(result.contains(current.wert) == false) //wenn result den wert nicht enthält + if(s.contains(current.wert) == false) {//wenn s den wert nicht enthält + result.add(current.wert); //wert wird zu result hinzugefügt + } + } + current = current.next; //nächste variable + } + return result;//gibt die Ausgabeliste zurück + } + + public boolean subset(Set s) { //Methode die kontrolliert ob alle variablen in der eingegebnene Liste auchn in der ersten Liste sind + Node current2 = s.start; //initialisiert die liste s + while(current2 != null) { //wärend der nächste wert ungleich null ist + if(this.contains(current2.wert) == true) { //wenn die erste liste den wert enthält + current2 = current2.next; //zur nächsten variable gehen + } else { + return false; //wenn nicht abbrechen + } + } + return true; //falls alle drinnen sind true zurück geben - //} - - /*public Set difference(Set s) { - - } - - public Set subset(Set s) { - - } */ + } public Node getStart() { //erstellt start zum getten return this.start; //gibt start zurück