commit aa06e9a9bdd17a0727fd15b5bb6c0c6d85cdbdad
Author: david <@>
Date:   Mon Feb 6 12:38:15 2023 +0100

    Initial sharing of project

diff --git a/LinkedList.java b/LinkedList.java
new file mode 100644
index 0000000..ee9882a
--- /dev/null
+++ b/LinkedList.java
@@ -0,0 +1,86 @@
+
+/**
+ * Beschreiben Sie hier die Klasse LinkedList.
+ * 
+ * @author (Ihr Name) 
+ * @version (eine Versionsnummer oder ein Datum)
+ */
+public class LinkedList<T>
+{
+    public Node<T> first;
+    public LinkedList(){
+    }
+
+    public void einfuegen (T neu) {
+        Node<T> n = new Node<T>(neu);//Neue Node mit Zahl "neu " anlegen
+
+        //Überprüfe ob die liste leer ist
+        if(first == null){
+            //setze neue node als erster Eintrag
+            first = n;
+        }
+        else {
+            Node<T> current = first;
+
+            while(current.next != null){
+                current = current.next;
+            }
+            current.setNext(n);
+        }
+
+        //current ist jetzt der letzte Eintrag
+        //setze neue Node als Nachfolger von bisher letztem Eintrag
+    }
+
+    public int laenge(){
+        Node current = first;
+        int laenge = 0;
+        while(current != null){
+            current = current.next;
+            laenge++;
+        }
+        return laenge;   
+
+    }
+
+    public T getNteZahl(int n){
+        Node<T> current = first;
+        for(int i = 0; i<n; i++){
+            current = current.next;   
+        }
+        return current.wert;
+    }
+
+    public void loesche(int n){
+        Node<T> current = first;
+
+        //gehe an den Vorgänger des zu löschenden Eintrags
+        for(int i=0; i<n-1; i++){
+            current = current.next;
+        }
+        //setze Übernächsten Eintrag als Nachfolger
+        current.next = current.next.next;
+
+    }
+
+    public void hinzufügen(int n, T wert){
+
+        Node<T> neu = new Node<T>(wert);
+        if(n==0){
+            //setze Nachfolger auf bisherigen Stand
+            neu.setNext(first);
+            //setze neuen Start auf neuen 
+            first = neu;
+        }else{
+            Node<T> current = first;
+            //gehe an den Vorgänger des zu löschenden Eintrags
+            for(int i=0; i<n-1; i++){
+                current = current.next;
+            }
+            //setze Übernächsten Eintrag als Nachfolger
+            current.next = current.next.next;
+        }
+
+    }
+    
+}
\ No newline at end of file
diff --git a/List.java b/List.java
new file mode 100644
index 0000000..da3c5f2
--- /dev/null
+++ b/List.java
@@ -0,0 +1,87 @@
+
+/**
+ * Beschreiben Sie hier die Klasse List.
+ * 
+ * @author (Ihr Name) 
+ * @version (eine Versionsnummer oder ein Datum)
+ */
+public class List<T>
+{
+    public Node<T> first;
+    public List(){
+    }
+
+    public void einfuegen (T neu) {
+        Node<T> n = new Node<T>(neu);//Neue Node mit Zahl "neu " anlegen
+
+        //Überprüfe ob die liste leer ist
+        if(first == null){
+            //setze neue node als erster Eintrag
+            first = n;
+        }
+        else {
+            Node<T> current = first;
+
+            while(current.next != null){
+                current = current.next;
+            }
+            current.setNext(n);
+        }
+
+        //current ist jetzt der letzte Eintrag
+        //setze neue Node als Nachfolger von bisher letztem Eintrag
+    }
+
+    public int laenge(){
+        Node current = first;
+        int laenge = 0;
+        while(current != null){
+            current = current.next;
+            laenge++;
+        }
+        return laenge;   
+
+    }
+
+    public T getNteZahl(int n){
+        Node<T> current = first;
+        for(int i = 0; i<n; i++){
+            current = current.next;   
+        }
+        return current.wert;
+    }
+
+    public void loesche(int n){
+        Node<T> current = first;
+
+        //gehe an den Vorgänger des zu löschenden Eintrags
+        for(int i=0; i<n-1; i++){
+            current = current.next;
+        }
+        //setze Übernächsten Eintrag als Nachfolger
+        current.next = current.next.next;
+
+    }
+
+    public void hinzufügen(int n, T wert){
+
+        Node<T> neu = new Node<T>(wert);
+        if(n==0){
+            //setze Nachfolger auf bisherigen Stand
+            neu.setNext(first);
+            //setze neuen Start auf neuen 
+            first = neu;
+        }else{
+            Node<T> current = first;
+            //gehe an den Vorgänger des zu löschenden Eintrags
+            for(int i=0; i<n-1; i++){
+                current = current.next;
+            }
+            //setze Übernächsten Eintrag als Nachfolger
+            current.next = current.next.next;
+        }
+
+    }
+    
+}
+
diff --git a/Menge.java b/Menge.java
new file mode 100644
index 0000000..d3499f3
--- /dev/null
+++ b/Menge.java
@@ -0,0 +1,80 @@
+
+/**
+ * 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;
+}
+}
diff --git a/Node.java b/Node.java
new file mode 100644
index 0000000..fbef2f2
--- /dev/null
+++ b/Node.java
@@ -0,0 +1,24 @@
+
+/**
+ * Beschreiben Sie hier die Klasse Node.
+ * 
+ * @author (Ihr Name) 
+ * @version (eine Versionsnummer oder ein Datum)
+ */
+public class Node<T>
+{
+    
+public T wert;
+
+public Node<T> next;
+
+public Node(T z){
+wert = z;
+}
+public void setNext(Node n){
+next = n;
+
+
+}
+
+}
diff --git a/Queue.java b/Queue.java
new file mode 100644
index 0000000..d482fe9
--- /dev/null
+++ b/Queue.java
@@ -0,0 +1,71 @@
+
+/**
+ * Beschreiben Sie hier die Klasse Queue.
+ * 
+ * @author (Ihr Name) 
+ * @version (eine Versionsnummer oder ein Datum)
+ */
+public class Queue<T>
+{
+     public Node<T> first;
+     
+    public Queue(){
+    }
+    public boolean isEmpty(){
+    if(first == null){
+    return true;
+    }
+    return false;
+    }
+    public void enqueue (T neu) {
+        Node<T> r = new Node<T>(neu);//Neue Node mit Zahl "neu " anlegen
+
+        //Überprüfe ob die liste leer ist
+        if(first == null){
+            //setze neue node als erster Eintrag
+            first = r;
+        }
+        else {
+            Node<T> current = first;
+
+            while(current.next != null){
+                current = current.next;
+            }
+            current.setNext(r);
+        }
+
+        //current ist jetzt der letzte Eintrag
+        //setze neue Node als Nachfolger von bisher letztem Eintrag
+    }
+
+    public int laenge(){
+        Node current = first;
+        int laenge = 0;
+        while(current != null){
+            current = current.next;
+            laenge++;
+        }
+        return laenge;   
+
+    }
+
+    
+    public T dequeue(){
+    if(first == null){
+    return null;
+    }
+    else{
+    Node<T> current = first;
+    first = first.next;
+    return current.wert;
+    }
+    
+    }
+    public T front(){
+    
+    return first.wert;
+    }
+    }
+
+   
+
diff --git a/README.TXT b/README.TXT
new file mode 100644
index 0000000..0ad193f
--- /dev/null
+++ b/README.TXT
@@ -0,0 +1,14 @@
+------------------------------------------------------------------------
+Dies ist die README-Datei des Projekts. Hier sollten Sie Ihr Projekt
+beschreiben.
+Erzählen Sie dem Leser (jemand, der nichts über dieses Projekt weiss),
+alles, was er/sie wissen muss. Üblicherweise sollte der Kommentar 
+zumindest die folgenden Angaben umfassen:
+------------------------------------------------------------------------
+
+PROJEKTBEZEICHNUNG:
+PROJEKTZWECK:
+VERSION oder DATUM:
+WIE IST DAS PROJEKT ZU STARTEN:
+AUTOR(EN):
+BENUTZERHINWEISE:
diff --git a/Stack.java b/Stack.java
new file mode 100644
index 0000000..c4411a5
--- /dev/null
+++ b/Stack.java
@@ -0,0 +1,68 @@
+
+/**
+ * Beschreiben Sie hier die Klasse Stack.
+ * 
+ * @author (Ihr Name) 
+ * @version (eine Versionsnummer oder ein Datum)
+ */
+public class Stack<T>
+{
+     public Node<T> first;
+     
+    public Stack(){
+    }
+    public boolean isEmpty(){
+    if(first == null){
+    return true;
+    }
+    return false;
+    }
+    public void push (T neu) {
+        Node<T> n = new Node<T>(neu);//Neue Node mit Zahl "neu " anlegen
+
+        //Überprüfe ob die liste leer ist
+        if(first == null){
+            //setze neue node als erster Eintrag
+            first = n;
+        }
+        else {
+            Node<T> current = first;
+
+            while(current.next != null){
+                current = current.next;
+            }
+            current.setNext(n);
+        }
+
+        //current ist jetzt der letzte Eintrag
+        //setze neue Node als Nachfolger von bisher letztem Eintrag
+    }
+
+    public int laenge(){
+        Node current = first;
+        int laenge = 0;
+        while(current != null){
+            current = current.next;
+            laenge++;
+        }
+        return laenge;   
+
+    }
+
+    
+    public T pop(){
+    if(first == null){
+    return null;
+    }
+    else{
+    Node<T> current = first;
+    first = first.next;
+    return current.wert;
+    }
+    
+    }
+    public T top(){
+    
+    return first.wert;
+    }
+    }
diff --git a/package.bluej b/package.bluej
new file mode 100644
index 0000000..65f9c3c
--- /dev/null
+++ b/package.bluej
@@ -0,0 +1,95 @@
+#BlueJ package file
+dependency1.from=Menge
+dependency1.to=Node
+dependency1.type=UsesDependency
+dependency2.from=List
+dependency2.to=Node
+dependency2.type=UsesDependency
+dependency3.from=Queue
+dependency3.to=Node
+dependency3.type=UsesDependency
+dependency4.from=LinkedList
+dependency4.to=Node
+dependency4.type=UsesDependency
+dependency5.from=Stack
+dependency5.to=Node
+dependency5.type=UsesDependency
+dependency6.from=test
+dependency6.to=Node
+dependency6.type=UsesDependency
+dependency7.from=test
+dependency7.to=Queue
+dependency7.type=UsesDependency
+editor.fx.0.height=728
+editor.fx.0.width=800
+editor.fx.0.x=1060
+editor.fx.0.y=217
+objectbench.height=100
+objectbench.width=776
+package.divider.horizontal=0.6
+package.divider.vertical=0.8003731343283582
+package.editor.height=422
+package.editor.width=661
+package.editor.x=289
+package.editor.y=511
+package.frame.height=600
+package.frame.width=800
+package.numDependencies=7
+package.numTargets=7
+package.showExtends=true
+package.showUses=true
+project.charset=UTF-8
+readme.height=60
+readme.name=@README
+readme.width=48
+readme.x=10
+readme.y=10
+target1.height=70
+target1.name=test
+target1.showInterface=false
+target1.type=ClassTarget
+target1.width=120
+target1.x=220
+target1.y=260
+target2.height=70
+target2.name=Node
+target2.showInterface=false
+target2.type=ClassTarget
+target2.width=120
+target2.x=70
+target2.y=10
+target3.height=70
+target3.name=Menge
+target3.showInterface=false
+target3.type=ClassTarget
+target3.width=120
+target3.x=160
+target3.y=90
+target4.height=70
+target4.name=List
+target4.showInterface=false
+target4.type=ClassTarget
+target4.width=120
+target4.x=160
+target4.y=170
+target5.height=70
+target5.name=Queue
+target5.showInterface=false
+target5.type=ClassTarget
+target5.width=120
+target5.x=10
+target5.y=220
+target6.height=70
+target6.name=LinkedList
+target6.showInterface=false
+target6.type=ClassTarget
+target6.width=120
+target6.x=30
+target6.y=140
+target7.height=70
+target7.name=Stack
+target7.showInterface=false
+target7.type=ClassTarget
+target7.width=120
+target7.x=10
+target7.y=300
diff --git a/test.java b/test.java
new file mode 100644
index 0000000..5d01e9c
--- /dev/null
+++ b/test.java
@@ -0,0 +1,49 @@
+
+/**
+ * Beschreiben Sie hier die Klasse test.
+ * 
+ * @author (Ihr Name) 
+ * @version (eine Versionsnummer oder ein Datum)
+ */
+public class test
+{
+  public static void test(){
+  Node<String> test = new Node<String>("Hallo");
+  Node<Integer> test2 = new Node<Integer>(5);
+  
+ 
+  Queue<Integer> liste = new Queue<Integer>();
+ /*liste.einfuegen(5);
+ liste.einfuegen(6);
+ liste.einfuegen(8);
+ liste.einfuegen(3);
+ liste.einfuegen(7);
+ liste.einfuegen(9);
+ liste.loesche(2);
+ liste.hinzufügen(4,"wirklich");*/
+ liste.enqueue(7);
+ liste.enqueue(4);
+ liste.enqueue(8);
+ liste.enqueue(2);
+ liste.enqueue(0);
+ liste.enqueue(4);
+   int Selection = liste.dequeue();
+System.out.println("Die  Zahl " +Selection+" wurde entfernt."); 
+   int Selection2 = liste.dequeue();
+System.out.println("Die  Zahl " +Selection2+" wurde entfernt."); 
+int Angabe = liste.front();
+System.out.println("Aktuell ist die erste Zahl " +Angabe+".");
+  Node current = liste.first;
+  
+  while(current != null){
+    System.out.println( current.wert );
+    current = current.next;
+    }
+    
+  System.out.println("Die Liste hat "+liste.laenge()+" Einträge. ");
+
+ 
+
+}
+ 
+}