Servus,
in einer Altklausur geht es darum, eine Methode (void fuegeEin (int w)) zu erstellen, die Einträge in eine sortierte Liste einfügt, so dass die Liste weiterhin aufsteigend sortiert ist.
In meinem Skript gibt es dann die u.g. rekursive Methode in der Klasse SortedList, die als einziges Attribut einen "head" vom Typ ListNode hat. Ich denke ich muss nicht weiter auf die Klasse ListNode eingehen. Weiter unten findet sich dann die Lösung aus der Altklausur, die ich mich stark verwundert, weil sie total von der Methode aus dem Skript abweicht und ich mir jetzt unsicher bin, warum hier eine ganz andere Methodendeklaration gewählt wird als im Skript angegeben.
Skript:
Altklausur:
Beste Grüße!
in einer Altklausur geht es darum, eine Methode (void fuegeEin (int w)) zu erstellen, die Einträge in eine sortierte Liste einfügt, so dass die Liste weiterhin aufsteigend sortiert ist.
In meinem Skript gibt es dann die u.g. rekursive Methode in der Klasse SortedList, die als einziges Attribut einen "head" vom Typ ListNode hat. Ich denke ich muss nicht weiter auf die Klasse ListNode eingehen. Weiter unten findet sich dann die Lösung aus der Altklausur, die ich mich stark verwundert, weil sie total von der Methode aus dem Skript abweicht und ich mir jetzt unsicher bin, warum hier eine ganz andere Methodendeklaration gewählt wird als im Skript angegeben.
Skript:
Java:
public class SortedList {
//Attribute
private ListNode head;
//Konstruktor
public SortedList() {
this.head = null;
}
//Methoden
public void add(int value) {
this.head = add(this.head, value);
}
private ListNode add(ListNode node, int value) {
if (node == null) {
return new ListNode (value, node);
}
if (node.getEntry() > value) {
return new ListNode(value, node);
}
node.setNext(add(node.getNext(), value));
return node;
}
}
Altklausur:
Java:
public class SortierteListe {
//Attribute
public ListNode head;
//Methoden
public void add (int w) {
ListNode newNode = new ListNode(w);
if (head == null) {
this.head = newNode;
}
if (this.head.value > w) {
newNode.next = this.head;
this.head = newNode;
return;
}
ListeNode current = head;
while (current.next != null && current.next.value < w) {
current = current.next;
}
newNode.next = current.next;
current.next = newNode;
}
}
Beste Grüße!