Guten Tag zusammen,
in der FH haben wir vor geraumer Zeit mal das Thema LinkedList bearbeitet. Jetzt stehe ich aber vor einer Stelle, wo ich einfach nicht verstehe wie es funktioniert ( in Eclipse funktioniert der Code einwandfrei). Es geht darum, dass es Nodes gibt in der LinkedList und es gibt eine root, eine last und eine current Node. Ein Nodeobjekt ist sehr einfach gehalten. Es hat einen Data Bereich und einen next Point.
[CODE lang="java" title="LinkedList"]public class LinkedList<T> {
private Node<T> root;
private Node<T> last;
private Node<T> current;
public LinkedList() {
root = new Node(null);
last = root;
}
public boolean isEmpty() {
return root == last;
}
public void append( T data) {
Node newNode = new Node(data);
last.setNext(newNode);
last = newNode;
}
public boolean showRoot () {
return root.getNext() != null;
}
public T getFirst() {
current = root.getNext();
if (current == null)
return null;
return current.getData();
}
}[/CODE]
Woher weiss root in getFirst() was sein nächster ist, wenn es nie ein setNext für root gegeben hat?
Ich vermute mal, dass es was damit zu tun hat was im Konstruktor steht aber reicht eine einfache last= root Zuweisung? Warum braucht root kein setNext() in append beim ersten mal wenn es eine neue Node gibt?
[CODE lang="java" title="Node"]public class Node<T> {
private T data;
private Node next;
public Node(T data) {
this.data = data;
this.next = null;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}[/CODE]
in der FH haben wir vor geraumer Zeit mal das Thema LinkedList bearbeitet. Jetzt stehe ich aber vor einer Stelle, wo ich einfach nicht verstehe wie es funktioniert ( in Eclipse funktioniert der Code einwandfrei). Es geht darum, dass es Nodes gibt in der LinkedList und es gibt eine root, eine last und eine current Node. Ein Nodeobjekt ist sehr einfach gehalten. Es hat einen Data Bereich und einen next Point.
[CODE lang="java" title="LinkedList"]public class LinkedList<T> {
private Node<T> root;
private Node<T> last;
private Node<T> current;
public LinkedList() {
root = new Node(null);
last = root;
}
public boolean isEmpty() {
return root == last;
}
public void append( T data) {
Node newNode = new Node(data);
last.setNext(newNode);
last = newNode;
}
public boolean showRoot () {
return root.getNext() != null;
}
public T getFirst() {
current = root.getNext();
if (current == null)
return null;
return current.getData();
}
}[/CODE]
Woher weiss root in getFirst() was sein nächster ist, wenn es nie ein setNext für root gegeben hat?
Ich vermute mal, dass es was damit zu tun hat was im Konstruktor steht aber reicht eine einfache last= root Zuweisung? Warum braucht root kein setNext() in append beim ersten mal wenn es eine neue Node gibt?
[CODE lang="java" title="Node"]public class Node<T> {
private T data;
private Node next;
public Node(T data) {
this.data = data;
this.next = null;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}[/CODE]