diff --git a/src/ScuffedLinkedList/linkedlist.java b/src/ScuffedLinkedList/linkedlist.java new file mode 100644 index 0000000..9c22dc0 --- /dev/null +++ b/src/ScuffedLinkedList/linkedlist.java @@ -0,0 +1,80 @@ +package ScuffedLinkedList; + +public class linkedlist +{ + private node head; + private node tail; + private int size; + + linkedlist(int value) + { + this.head = new node(value); + } + + public void add(int value, int index) + { + node inserted = new node(value); + if(index == 0) + { + if(head.next == null) + { + + } + else + { + inserted.next = head; + head.prev = inserted; + } + + } + else if(index <= size) + { + if(index < size/2) + { + int counter = 0; + node previous = head; + node current = previous.prev; + + while (counter < index - 1) { + counter++; + current = current.next; + previous = previous.next; + + } + inserted.next = current; + inserted.prev = previous; + + current.prev = inserted; + previous.next = inserted; + size++; + } + else + { + + int counter = size; + node previous = tail; + node current = previous.prev; + + while (counter > index) { + counter--; + current = current.prev; + previous = previous.prev; + + } + inserted.next = current; + inserted.prev = previous; + + current.prev = inserted; + previous.next = inserted; + } + + } + else if(index >= size) + { + inserted.prev = tail; + tail.next = inserted; + tail = inserted; + } + size++; + } +} diff --git a/src/ScuffedLinkedList/node.java b/src/ScuffedLinkedList/node.java new file mode 100644 index 0000000..8ab78ad --- /dev/null +++ b/src/ScuffedLinkedList/node.java @@ -0,0 +1,36 @@ +package ScuffedLinkedList; + +public class node +{ + int data; + public node next; + public node prev; + + node(int data) + { + this.data = data; + } + + node() + { + + } + public void setData(int data) + { + this.data = data; + } + + public int getData() + { + return data; + } + + @Override + public String toString() + { + return String.valueOf(this.data); + } + + + +}