R
Reap
Gast
Hallo....ich hab jetzt mal eine einfach verkettete Liste mit all ihren Methoden gemacht. Nun sollen wir mittels Vererbung eine doppelt verkettete Liste machen. Und genau hier liegt mein Verständnisproblem.
Die Klasse Node schaut so aus:
Die Klasse DoubleNode so:
Die Methode insert in LinkedList(einfach verkettet)
p
Soweit noch alles klar aber jetzt kommts:
Was soll ich also tun?
mfg,
Reap
Die Klasse Node schaut so aus:
Code:
public class Node {
public Comparable data; // content of the Node
public Node next; // pointer to next Node
public Node(Comparable data) { // constructor
this.data = data;
this.next = null;
}
}
Die Klasse DoubleNode so:
Code:
public class DLNode extends Node{
public Node prev;
public DLNode(Comparable elem){
super(elem);
this.prev = null;
}
}
Die Methode insert in LinkedList(einfach verkettet)
p
Code:
ublic class LinkedList implements MyList{
protected int size = 0; // size of the list, so that getSize() has O(1)
protected Node head; // first node of the list
protected Node tail; // last node of the list
public LinkedList() { // dummy-element
head = new Node(null);
tail = head;
}
//insert a node,whose element is val, after the node pos and return the added node
protected Node insert(Node pos, Comparable val){
Node theNode = new Node(val);
theNode.next = pos.next;
pos.next = theNode;
size++;
if(pos == tail){
tail = theNode;
}
return theNode;
}
}
Soweit noch alles klar aber jetzt kommts:
Code:
public class DoubleLinkedList extends LinkedList{
protected int size = 0; // size of the list, so that getSize() has O(1)
protected DLNode head; // first node of the list
protected DLNode tail; // last node of the list
public DoubleLinkedList() { // dummy-element
super();
}
//insert a node,whose element is val, after the node pos and return the added node
protected DLNode insert(DLNode pos, Comparable val){
DLNode temp = new DLNode(val);
//always 4 pointer operations to add a node
temp.next = pos.next;
temp.next.prev = temp; ...ERROR
...GEHT NICHT DA WENN ICH TEMP.NEXT EINGEBE ER GLAUBT
DER KNOTEN SEI VON DER KLASSE NODE UND ER SOMIT KEIN PREV MEHR KENNT. ICH MUSS
ABER LEIDER DIE KLASSE "DLNode" SO LASSEN WIE ES IST DASS WAR ÜBUNGSVORGABE
pos.next = temp;
temp.prev = pos;
size++;
if(pos == tail){
tail = temp;
}
return temp;
}
Was soll ich also tun?
mfg,
Reap