From 21ac9f540508710949f492aaa395407cc0331565 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20P=C5=99ib=C3=ADk?= Date: Thu, 16 Oct 2025 15:09:24 +0200 Subject: [PATCH] impl: custom linked list size and add --- .../customlist/CustomLinkedListImpl.java | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 assignment/src/main/java/appointmentplanner/customlist/CustomLinkedListImpl.java diff --git a/assignment/src/main/java/appointmentplanner/customlist/CustomLinkedListImpl.java b/assignment/src/main/java/appointmentplanner/customlist/CustomLinkedListImpl.java new file mode 100644 index 0000000..ef2ed46 --- /dev/null +++ b/assignment/src/main/java/appointmentplanner/customlist/CustomLinkedListImpl.java @@ -0,0 +1,84 @@ +package appointmentplanner.customlist; + +import java.util.Iterator; + +import appointmentplanner.customlist.api.CustomLinkedList; + +public class CustomLinkedListImpl implements CustomLinkedList { + + CustomLinkedListNode head = null; + + @Override + public Iterator iterator() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'iterator'"); + } + + @Override + public void add(T item) { + CustomLinkedListNode newNode = new CustomLinkedListNode<>(item); + + CustomLinkedListNode 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 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); + } + +}