mardi 5 mai 2015
Methoden Linked List Methoden können nicht aufgerufen werden
Posted on 02:43 by verona
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 Code:
-
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
Methoden Linked List Methoden können nicht aufgerufen werden
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire