diff --git a/List.java b/List.java index 8e4e7ac..c5090e4 100644 --- a/List.java +++ b/List.java @@ -95,7 +95,33 @@ public class List } public T remove(int n) { - return null; //Platzhalter + if (n >= size()) return null; //um fehler zu beheben: Parameter darf nicht größer als tatsächlicher Länge sein + + if ( n == 0){ // wenn Parameter 0 ist dann... + T tmp = first.wert; // wert von first (=0) speichern + first = first.next; //first "pfeil" auf den nächsten + return tmp;//wert ausgeben + } + Node current = first; + + for (int i = 0; i < n-1; i++){ + current = current.next; + } + + T tmp = current.next.wert; // (Zwischenvariable um gelöschten Wert zu speichern) + current.next = current.next.next; // Pfeil auf nächsten verschieben damit er nichr auf gelöschtem Zeigt + return tmp; //gelöschten Wert ausgeben + } + + public String toString(){ // glaub um halt alles schön auszugeben + String result = ""; + Node current = first; + while (current != null){ + result += current.wert + ", "; + current = current.next; + } + return result; + } } -} + diff --git a/Queue.java b/Queue.java new file mode 100644 index 0000000..0001029 --- /dev/null +++ b/Queue.java @@ -0,0 +1,59 @@ + +/** + * Beschreiben Sie hier die Klasse Queue. + * + * @author (Ihr Name) + * @version (eine Versionsnummer oder ein Datum) + */ + +public class Queue +{ + private Node first; + + public Queue() { + first = null; + } + + public boolean isEmpty() { + if (first == null) return true; + return false; + } + + public T front() { + if (this.first == null) return null; + return this.first.wert; + } + + public void enqueue(T val) { + Node neu = new Node(); + neu.wert = val; + + if (first == null) { + first = neu; + } else { + Node current = first; + while (current.next != null) { + current = current.next; + } + current.next = neu; + } + } + + public T dequeue(int n) { + T tmp = first.wert; // (Zwischenvariable um gelöschten Wert zu speichern) + first = first.next; // Pfeil auf nächsten verschieben damit er nichr auf gelöschtem Zeigt + return tmp; //gelöschten Wert ausgeben + } + + public String toString(){ // glaub um halt alles schön auszugeben + String result = ""; + Node current = first; + while (current != null){ + result += current.wert + ", "; + current = current.next; + } + return result; + } + } + +