Guten Tag,
sitze jetzt schon fast eine Stunde an meinem Problem. Und zwar kann ich meine Methoden nicht aufrufen
So sieht meine Implementierung für eine Linked List aus. Leider kann ich sie nicht Testen, da ich z.B. LinkedList.addFirst(test) nicht aufrufen kann.
Lg Soja
sitze jetzt schon fast eine Stunde an meinem Problem. Und zwar kann ich meine Methoden nicht aufrufen
Java:
public class LinkedList<T> { @SuppressWarnings("hiding")
private class ListElement<T> {
private T value;
private ListElement<T> next; // = null
private ListElement<T> prev; // = null
public ListElement(T value) {
this.value = value;
}
}
private ListElement<T> first; // =null
private ListElement<T> last; // =null
private int size; // =0
// Default Konstruktor reicht aus.
public void addFirst(T value) {
ListElement<T> le = new ListElement<T>(value);
if (size == 0) {
first = le;
last = le;
} //liste nicht leer
else {
le.next = first;
first.prev = le;
first = le;
}
size++;
}
public void addLast(T value){
ListElement<T> le = new ListElement<T>(value);
if (size == 0){
addFirst(value);
}
else{
last.next = le;
le.prev = last;
last = le;
}
size++;
}
public void add(int index, T value){
ListElement<T> le = new ListElement<T>(value);
assert index >= 0 && index < size;
if(index == 0){
addFirst(value);
}
else if(index == (size-1)){
addLast(value);
}
else{
ListElement<T> current = first;
while (index > 0) {
index--;
current = current.next;
}
le.next = current.next;
current.next.prev = le;
current.next = le;
le.prev = current;
}
size++;
}
public void removeFirst(){
assert size != 0; // leere liste
if(size == 1){
first = null;
last = null;
}else{
first = first.next;
}
size--;
}
public void removeLast(){
assert size != 0; // leere liste
if (size == 1){
first = null;
last = null;
}else{
last.prev.next = null;
last = last.prev;
}
size--;
}
public void remove(int index){
assert index != 0; // leere liste
if (index == 1){
removeFirst();
}else if(index == (size-1)){
removeLast();
}else{
ListElement<T> current = first;
while (index > 0) {
index--;
current = current.next;
}
current.prev.next = current.next;
current.next.prev = current.prev;
}
size--;
}
public T get(int index) {
assert index >= 0 && index < size; //index 1 = 0. Element
ListElement<T> current = first;
while (index > 0) {
index--;
current = current.next;
}
return current.value;
}
public int getSize(){
return size;
}
}
So sieht meine Implementierung für eine Linked List aus. Leider kann ich sie nicht Testen, da ich z.B. LinkedList.addFirst(test) nicht aufrufen kann.
Lg Soja