Initial sharing of project
commit
e4e0712be5
|
@ -0,0 +1,90 @@
|
|||
public class LinkedList<T>
|
||||
{
|
||||
public Node<T> first;
|
||||
|
||||
public LinkedList() {
|
||||
}
|
||||
|
||||
public void einfuegen(T neu) {
|
||||
Node n = new Node<T>(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<T> 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<T> current = first;
|
||||
int laenge = 0;
|
||||
|
||||
while (current != null) {
|
||||
current = current.next;
|
||||
laenge++;
|
||||
}
|
||||
|
||||
return laenge;
|
||||
}
|
||||
|
||||
public T getNtenWert(int n) {
|
||||
Node<T> current = first;
|
||||
|
||||
for (int i=0; i<n; i++) {
|
||||
current = current.next;
|
||||
}
|
||||
|
||||
return current.wert;
|
||||
}
|
||||
|
||||
public void loesche(int n) {
|
||||
if (n == 0) {
|
||||
first = first.next;
|
||||
} 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;
|
||||
}
|
||||
}
|
||||
|
||||
public void einfuegen(int n, T wert) {
|
||||
// Neue Node anlegen
|
||||
Node<T> neu = new Node<T>(wert);
|
||||
|
||||
if (n == 0) {
|
||||
// Setze Nachfolger auf bisherigen Start
|
||||
neu.setNext(first);
|
||||
// Setze neuen Start auf neues Element
|
||||
first = neu;
|
||||
} else {
|
||||
Node<T> current = first;
|
||||
// gehe an den Vorgänger
|
||||
for (int i=0; i<n-1; i++) {
|
||||
current = current.next;
|
||||
}
|
||||
|
||||
// ändere neu.next auf current.next
|
||||
neu.setNext(current.next);
|
||||
|
||||
// ändere current.next auf neu
|
||||
current.setNext(neu);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,119 @@
|
|||
public class List<T>
|
||||
{
|
||||
public Node<T> first;
|
||||
|
||||
public List() {}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return first == null;
|
||||
}
|
||||
|
||||
public int size() {
|
||||
Node<T> current = first;
|
||||
int laenge = 0;
|
||||
|
||||
while (current != null) {
|
||||
current = current.next;
|
||||
laenge++;
|
||||
}
|
||||
|
||||
return laenge;
|
||||
}
|
||||
|
||||
public T get(int n) {
|
||||
Node<T> current = first;
|
||||
|
||||
if (n >= size()) return null;
|
||||
|
||||
for (int i=0; i<n; i++) {
|
||||
current = current.next;
|
||||
}
|
||||
|
||||
return current.wert;
|
||||
}
|
||||
|
||||
public void add(T neu) {
|
||||
Node n = new Node<T>(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<T> 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<T> neu = new Node<T>(wert);
|
||||
|
||||
if (n == 0) {
|
||||
// Setze Nachfolger auf bisherigen Start
|
||||
neu.setNext(first);
|
||||
// Setze neuen Start auf neues Element
|
||||
first = neu;
|
||||
} else {
|
||||
Node<T> current = first;
|
||||
// gehe an den Vorgänger
|
||||
for (int i=0; i<n-1; i++) {
|
||||
if (current.next != null) {
|
||||
current = current.next;
|
||||
}
|
||||
}
|
||||
|
||||
// ändere neu.next auf current.next
|
||||
neu.setNext(current.next);
|
||||
|
||||
// ändere current.next auf neu
|
||||
current.setNext(neu);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean contains(T wert) {
|
||||
Node<T> 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<T> current = first;
|
||||
|
||||
// gehe an den Vorgänger des zu löschenden Eintrags
|
||||
for (int i=0; i<n-1; i++) {
|
||||
current = current.next;
|
||||
}
|
||||
|
||||
T wert = current.next.wert;
|
||||
|
||||
// Setze Übernächsten Eintrag als Nachfolger
|
||||
current.next = current.next.next;
|
||||
|
||||
return wert;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
public class Node<T>
|
||||
{
|
||||
public T wert;
|
||||
|
||||
public Node<T> next;
|
||||
|
||||
public Node(T w) {
|
||||
wert = w;
|
||||
}
|
||||
|
||||
public void setNext(Node n) {
|
||||
next = n;
|
||||
}
|
||||
}
|
|
@ -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:
|
|
@ -0,0 +1,25 @@
|
|||
public class Test
|
||||
{
|
||||
public static void test() {
|
||||
List liste = new List<String>();
|
||||
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<String> current = liste.first;
|
||||
|
||||
while (current != null) {
|
||||
System.out.println(current.wert);
|
||||
current = current.next;
|
||||
}
|
||||
|
||||
System.out.println(liste.contains("ist"));
|
||||
}
|
||||
}
|
|
@ -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
|
Loading…
Reference in New Issue