From e9101d53eac134857109dc2bfee28a8337b7a1c2 Mon Sep 17 00:00:00 2001 From: Libkyy Date: Tue, 15 Mar 2022 22:51:23 +0200 Subject: [PATCH] linkedList start --- src/ScuffedLinkedList/linkedlist.java | 80 +++++++++++++++++++++++++++ src/ScuffedLinkedList/node.java | 36 ++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 src/ScuffedLinkedList/linkedlist.java create mode 100644 src/ScuffedLinkedList/node.java 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); + } + + + +}