impl: custom linked list size and add
This commit is contained in:
@@ -0,0 +1,84 @@
|
|||||||
|
package appointmentplanner.customlist;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import appointmentplanner.customlist.api.CustomLinkedList;
|
||||||
|
|
||||||
|
public class CustomLinkedListImpl<T> implements CustomLinkedList<T> {
|
||||||
|
|
||||||
|
CustomLinkedListNode<T> head = null;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Iterator<T> iterator() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
throw new UnsupportedOperationException("Unimplemented method 'iterator'");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void add(T item) {
|
||||||
|
CustomLinkedListNode<T> newNode = new CustomLinkedListNode<>(item);
|
||||||
|
|
||||||
|
CustomLinkedListNode<T> oldHead = head;
|
||||||
|
|
||||||
|
head = newNode;
|
||||||
|
|
||||||
|
if (oldHead != null) {
|
||||||
|
head.setNext(oldHead);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void remove(T item) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
throw new UnsupportedOperationException("Unimplemented method 'remove'");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insertAfter(T reference, T item) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
throw new UnsupportedOperationException("Unimplemented method 'insertAfter'");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insertBefore(T reference, T item) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
throw new UnsupportedOperationException("Unimplemented method 'insertBefore'");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public T getAfter(T reference) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
throw new UnsupportedOperationException("Unimplemented method 'getAfter'");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public T getBefore(T reference) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
throw new UnsupportedOperationException("Unimplemented method 'getBefore'");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean contains(T item) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
throw new UnsupportedOperationException("Unimplemented method 'contains'");
|
||||||
|
}
|
||||||
|
|
||||||
|
private int recursiveSizeCalc(CustomLinkedListNode<T> node, int count) {
|
||||||
|
if (node == null) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (node.getNext() == null) {
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
return recursiveSizeCalc(node.getNext(), count + 1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int size() {
|
||||||
|
return recursiveSizeCalc(this.head, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user