/**
 * Beschreiben Sie hier die Klasse Menge.
 * 
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Menge<T>
{
   public Node<T> first;
   public Menge(){
    }
    
public boolean contains(T n){
        Node<T> current = first;
    while (current != null){
    if(current.wert == n){
    return true;
    }
    
    }
    return false;
    }
    public void add (T neu) {
        Node<T> n = new Node<T>(neu);//Neue Node mit Zahl "neu " anlegen

        if(contains(neu) == false){//Überprüfe ob die liste leer ist
        if(first == null){
            //setze neue node als erster Eintrag
            first = n;
        }
        else {
            Node<T> current2 = first;

            while(current2.next != null){
                current2 = current2.next;
            }
            current2.setNext(n);
        }

        //current ist jetzt der letzte Eintrag
        //setze neue Node als Nachfolger von bisher letztem Eintrag
    }
}
   
public void remove(T neu){
    Node<T> n = new Node<T>(neu);
    Node<T> current = first;
while(current.next.wert != n){
current = current.next;
}
current.next = current.next.next;
}
public Menge<T> intersection(Menge<T> s){
Menge<T> neu = new Menge<T>();
Node<T> current = first;
while(current != null){
current = current.next;
if(s.contains(current.wert) == true){
neu.add(current.wert);

}
}
return neu;
}
public Menge<T> union(Menge<T> s){
Menge<T> neu = new Menge<T>();
Node<T> current = first;
while(current != null){
neu.add(current.wert);
current = current.next;
}
Node<T> current2 = first;
while(current != null){
neu.add(current2.wert);
current = current.next;
}
return neu;
}
}