Get Operation
Suppose we have a linked list with $n$ elements (nodes) and we want to get the data stored in the $k^{th}$ element (at index $k-1$).
Exercise Complete the implementation of the get
method which returns data stored at a given index.
public T get(int index) {
return null; // TODO Implement me!
}
Hint: you cannot directly jump to $K^{th}$ node. You need to start at the head
and follow the next
references to get there!
Solution
public T get(int index) {
return find(index).data;
}
// PRE: 0 <= index < numElements
private Node<T> find(int index) {
Node<T> target = head;
for(int counter = 0; counter < index; ounter++) {
target = target.next;
}
return target;
}
Caution: the implementation above fails to account for an edge case!