hallo,
ich soll eine addAtTheEnd Methode implementieren,
Head soll immer auf das letzte Element zeigen.
zur Zeit sieht mein Programm so aus:
1 | ublic class List implements IList
|
2 | {
|
3 | private IListElement head;
|
4 | private IListElement current;
|
5 | private int count;
|
6 |
|
7 |
|
8 | public List()
|
9 | {
|
10 |
|
11 | head = new ListElement(null);
|
12 | head.setValueElement(null);
|
13 | count = 0;
|
14 | }
|
15 |
|
16 | public IListElement getHead()
|
17 | {
|
18 | IValueElement value = null;
|
19 | if(head != null)
|
20 | value = new ValueElement(null, 0);
|
21 | head.setValueElement(value);
|
22 | return head;
|
23 | }
|
24 |
|
25 |
|
26 | public void insertAtTheEnd(IValueElement value)
|
27 | {
|
28 | IListElement newElem = new ListElement(value);
|
29 | value = (value != null ? value : new ValueElement("nullvalue", 1));
|
30 |
|
31 | if(count == 0)
|
32 | {
|
33 | current = newElem;
|
34 | head.setSuccessor(current);
|
35 | head.setPredecessor(current);
|
36 | head.getSuccessor().setPredecessor(head);
|
37 | current.setSuccessor(null);
|
38 |
|
39 | }
|
40 | if(count == 1)
|
41 | {
|
42 |
|
43 | newElem.setPredecessor(head.getPredecessor());
|
44 | head.setPredecessor(newElem);
|
45 | head.getPredecessor().setSuccessor(null);
|
46 | newElem.setSuccessor(null);
|
47 | head.getSuccessor().setSuccessor(head.getPredecessor());
|
Bis dahin würde ich sagen dass es auch funktioniert, jedoch ist die
Aufgabenstellung, dass nach dreimaligem Einfügen, muss der Vorgänger des
Kopfes das zuletzt eingefügte ValueElement sein.
Dies funktioniert leider nicht
1 |
|
2 | if(count == 2)
|
3 | {
|
4 | newElem.setPredecessor(head.getPredecessor());
|
5 | head.setPredecessor(newElem);
|
6 | }
|
könnte mir jmd einen Tipp geben?
Vielen Dank