Kann mir jemand sagen, was in diesen Methoden passiert? Zeile für Zeile?
Java:
public int size() {
int count = 0 ;
Node pointer = first;
while (pointer != null) {
count++;
pointer = pointer.getNext();
}
return count;
}
//-----------------------------------------------------------
public int getElementAt(int pos) {
Node pointer = first;
int position = pos;
for (int i = 1; i < position; i++)
pointer = pointer.getNext();
return pointer.getData();
}
//----------------------------------------------------------
public void setElementAt(int pos, int value) {
Node pointer = first;
int position = pos;
int val = value;
for (int i = 1; i < position; i++)
pointer = pointer.getNext();
pointer.setData(val);
}
//----------------------------------------------------------
public int getFirst() throws SLLEmpty {
if (first != null) {
return first.getData();
} else {
throw new SLLEmpty();
}
}
//----------------------------------------------------------
public int getLast() throws SLLEmpty {
if (first == null) {
throw new SLLEmpty();
} else {
Node pointer = first;
while (pointer.getNext() != null) {
pointer = pointer.getNext();
}
return pointer.getData();
}
}
//----------------------------------------------------------
public Node remove(int pos) throws SLLEmpty {
Node pointer = first;
Node pointerTemp = first;
int position = pos;
Object value = null;
if (first == null) {
throw new SLLEmpty();
} else if (position == 1) {
removeFirst();
} else {
for (int i = 1; i < position - 1; i++)
pointer = pointer.getNext();
value = pointer.getNext().getData();
pointerTemp = pointer.getNext().getNext();
pointer.setNext(null);
pointer.setNext(pointerTemp);
}
return pointerTemp;
}
//----------------------------------------------------------
public int removeFirst() throws SLLEmpty {
if (first != null) {
int value = first.getData();
first = first.getNext();
return value;
} else {
throw new SLLEmpty();
}
}
//----------------------------------------------------------
public int removeLast() throws SLLEmpty {
int length = size();
if (length == 0) {
throw new SLLEmpty();
} else if (length == 1) {
int value = first.getData();
first = null;
return value;
}
else {
Node pointer = first;
while (pointer.getNext().getNext() != null) {
pointer = pointer.getNext();
}
int value = pointer.getNext().getData();
pointer.setNext(null);
return value;
}
}
public int[] toArray() {
int size = size();
int[] array = new int[size];
Node pointer = first;
int counter = 0;
while (pointer.getNext() != null) {
array[(int) counter] = pointer.getNext().getData();
counter++;
pointer = pointer.getNext();
}
return array;
}
}
//----------------------------------------------------------------------------------------------------------------