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