From e4e0712be53e638a8e4435911dc8a6ac8b54595e Mon Sep 17 00:00:00 2001 From: akimmig Date: Mon, 16 Jan 2023 12:37:32 +0100 Subject: [PATCH] Initial sharing of project --- LinkedList.java | 90 ++++++++++++++++++++++++++++++++++++ List.java | 119 ++++++++++++++++++++++++++++++++++++++++++++++++ Node.java | 14 ++++++ README.TXT | 14 ++++++ Test.java | 25 ++++++++++ package.bluej | 69 ++++++++++++++++++++++++++++ 6 files changed, 331 insertions(+) create mode 100644 LinkedList.java create mode 100644 List.java create mode 100644 Node.java create mode 100644 README.TXT create mode 100644 Test.java create mode 100644 package.bluej diff --git a/LinkedList.java b/LinkedList.java new file mode 100644 index 0000000..08a7a39 --- /dev/null +++ b/LinkedList.java @@ -0,0 +1,90 @@ +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 Liste leer + if (first == null) { + // setze neue Node als ersten Eintrag + first = n; + } else { + Node current = first; + + // gehe zum letzten Eintrag + while (current.next != null) { + current = current.next; + } + + // current ist jetzt der letzte Eintrag + // setze neue Node als Nachfolger von bisher letzem Eintrag + current.setNext(n); + } + } + + public int laenge() { + Node current = first; + int laenge = 0; + + while (current != null) { + current = current.next; + laenge++; + } + + return laenge; + } + + public T getNtenWert(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 Start + neu.setNext(first); + // Setze neuen Start auf neues Element + first = neu; + } else { + Node current = first; + // gehe an den Vorgänger + for (int i=0; i +{ + public Node first; + + public List() {} + + public boolean isEmpty() { + return first == null; + } + + public int size() { + Node current = first; + int laenge = 0; + + while (current != null) { + current = current.next; + laenge++; + } + + return laenge; + } + + public T get(int n) { + Node current = first; + + if (n >= size()) return null; + + for (int i=0; i(neu); // Neue Node mit Zahl "neu" anlegen + + // Überprüfe, ob Liste leer + if (first == null) { + // setze neue Node als ersten Eintrag + first = n; + } else { + Node current = first; + + // gehe zum letzten Eintrag + while (current.next != null) { + current = current.next; + } + + // current ist jetzt der letzte Eintrag + // setze neue Node als Nachfolger von bisher letzem Eintrag + current.setNext(n); + } + } + + public void add(int n, T wert) { + // Neue Node anlegen + Node neu = new Node(wert); + + if (n == 0) { + // Setze Nachfolger auf bisherigen Start + neu.setNext(first); + // Setze neuen Start auf neues Element + first = neu; + } else { + Node current = first; + // gehe an den Vorgänger + for (int i=0; i current = first; + + while (current != null) { + if (current.wert == wert) return true; + + current = current.next; + } + + return false; + } + + public T remove(int n) { + if (n >= size()) return null; + + if (n == 0) { + T wert = first.wert; + + first = first.next; + + return wert; + } else { + Node current = first; + + // gehe an den Vorgänger des zu löschenden Eintrags + for (int i=0; i +{ + public T wert; + + public Node next; + + public Node(T w) { + wert = w; + } + + public void setNext(Node n) { + next = n; + } +} 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/Test.java b/Test.java new file mode 100644 index 0000000..1c155c0 --- /dev/null +++ b/Test.java @@ -0,0 +1,25 @@ +public class Test +{ + public static void test() { + List liste = new List(); + liste.add("Hallo"); + liste.add("Welt"); + liste.add("Informatik"); + liste.add("ist"); + liste.add("toll"); + liste.add("!!!"); + + liste.remove(1); + + liste.add(3, "wirklich"); + + Node current = liste.first; + + while (current != null) { + System.out.println(current.wert); + current = current.next; + } + + System.out.println(liste.contains("ist")); + } +} diff --git a/package.bluej b/package.bluej new file mode 100644 index 0000000..b08341c --- /dev/null +++ b/package.bluej @@ -0,0 +1,69 @@ +#BlueJ package file +dependency1.from=LinkedList +dependency1.to=Node +dependency1.type=UsesDependency +dependency2.from=List +dependency2.to=Node +dependency2.type=UsesDependency +dependency3.from=Test +dependency3.to=List +dependency3.type=UsesDependency +dependency4.from=Test +dependency4.to=Node +dependency4.type=UsesDependency +editor.fx.0.height=1055 +editor.fx.0.width=960 +editor.fx.0.x=960 +editor.fx.0.y=25 +editor.fx.1.height=1055 +editor.fx.1.width=960 +editor.fx.1.x=0 +editor.fx.1.y=25 +objectbench.height=191 +objectbench.width=557 +package.divider.horizontal=0.6 +package.divider.vertical=0.8002018163471241 +package.editor.height=786 +package.editor.width=821 +package.editor.x=0 +package.editor.y=25 +package.frame.height=1055 +package.frame.width=960 +package.numDependencies=4 +package.numTargets=4 +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=500 +target1.y=90 +target2.height=70 +target2.name=Node +target2.showInterface=false +target2.type=ClassTarget +target2.width=120 +target2.x=130 +target2.y=100 +target3.height=70 +target3.name=List +target3.showInterface=false +target3.type=ClassTarget +target3.width=120 +target3.x=300 +target3.y=460 +target4.height=70 +target4.name=LinkedList +target4.showInterface=false +target4.type=ClassTarget +target4.width=120 +target4.x=130 +target4.y=290