From aa06e9a9bdd17a0727fd15b5bb6c0c6d85cdbdad Mon Sep 17 00:00:00 2001 From: david <@> Date: Mon, 6 Feb 2023 12:38:15 +0100 Subject: [PATCH] Initial sharing of project --- LinkedList.java | 86 ++++++++++++++++++++++++++++++++++++++++++++ List.java | 87 ++++++++++++++++++++++++++++++++++++++++++++ Menge.java | 80 +++++++++++++++++++++++++++++++++++++++++ Node.java | 24 +++++++++++++ Queue.java | 71 ++++++++++++++++++++++++++++++++++++ README.TXT | 14 ++++++++ Stack.java | 68 +++++++++++++++++++++++++++++++++++ package.bluej | 95 +++++++++++++++++++++++++++++++++++++++++++++++++ test.java | 49 +++++++++++++++++++++++++ 9 files changed, 574 insertions(+) create mode 100644 LinkedList.java create mode 100644 List.java create mode 100644 Menge.java create mode 100644 Node.java create mode 100644 Queue.java create mode 100644 README.TXT create mode 100644 Stack.java create mode 100644 package.bluej create mode 100644 test.java 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 +{ + public Node first; + public LinkedList(){ + } + + public void einfuegen (T neu) { + Node n = new Node(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 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 current = first; + for(int i = 0; i current = first; + + //gehe an den Vorgänger des zu löschenden Eintrags + for(int i=0; i neu = new Node(wert); + if(n==0){ + //setze Nachfolger auf bisherigen Stand + neu.setNext(first); + //setze neuen Start auf neuen + first = neu; + }else{ + Node current = first; + //gehe an den Vorgänger des zu löschenden Eintrags + for(int i=0; i +{ + public Node first; + public List(){ + } + + public void einfuegen (T neu) { + Node n = new Node(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 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 current = first; + for(int i = 0; i current = first; + + //gehe an den Vorgänger des zu löschenden Eintrags + for(int i=0; i neu = new Node(wert); + if(n==0){ + //setze Nachfolger auf bisherigen Stand + neu.setNext(first); + //setze neuen Start auf neuen + first = neu; + }else{ + Node current = first; + //gehe an den Vorgänger des zu löschenden Eintrags + for(int i=0; i +{ + public Node first; + public Menge(){ + } + +public boolean contains(T n){ + Node current = first; + while (current != null){ + if(current.wert == n){ + return true; + } + + } + return false; + } + public void add (T neu) { + Node n = new Node(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 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 n = new Node(neu); + Node current = first; +while(current.next.wert != n){ +current = current.next; +} +current.next = current.next.next; +} +public Menge intersection(Menge s){ +Menge neu = new Menge(); +Node current = first; +while(current != null){ +current = current.next; +if(s.contains(current.wert) == true){ +neu.add(current.wert); + +} +} +return neu; +} +public Menge union(Menge s){ +Menge neu = new Menge(); +Node current = first; +while(current != null){ +neu.add(current.wert); +current = current.next; +} +Node 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 +{ + +public T wert; + +public Node 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 +{ + public Node first; + + public Queue(){ + } + public boolean isEmpty(){ + if(first == null){ + return true; + } + return false; + } + public void enqueue (T neu) { + Node r = new Node(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 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 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 +{ + public Node first; + + public Stack(){ + } + public boolean isEmpty(){ + if(first == null){ + return true; + } + return false; + } + public void push (T neu) { + Node n = new Node(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 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 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 test = new Node("Hallo"); + Node test2 = new Node(5); + + + Queue liste = new Queue(); + /*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. "); + + + +} + +}