diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 4be381c..a07d5fa 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -6,11 +6,13 @@
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__junit_junit_4_13_1.xml b/.idea/libraries/Maven__junit_junit_4_13_1.xml
new file mode 100644
index 0000000..9fa24fc
--- /dev/null
+++ b/.idea/libraries/Maven__junit_junit_4_13_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_1.xml b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_1.xml
new file mode 100644
index 0000000..f555713
--- /dev/null
+++ b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
new file mode 100644
index 0000000..f58bbc1
--- /dev/null
+++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jetbrains_annotations_13_0.xml b/.idea/libraries/Maven__org_jetbrains_annotations_13_0.xml
new file mode 100644
index 0000000..e2c8297
--- /dev/null
+++ b/.idea/libraries/Maven__org_jetbrains_annotations_13_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_1_4_20.xml b/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_1_4_20.xml
new file mode 100644
index 0000000..70c9b42
--- /dev/null
+++ b/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_1_4_20.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_common_1_4_20.xml b/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_common_1_4_20.xml
new file mode 100644
index 0000000..24afaa1
--- /dev/null
+++ b/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_common_1_4_20.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_4_20.xml b/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_4_20.xml
new file mode 100644
index 0000000..0af2311
--- /dev/null
+++ b/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_4_20.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_4_20.xml b/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_4_20.xml
new file mode 100644
index 0000000..3d09f6a
--- /dev/null
+++ b/.idea/libraries/Maven__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_4_20.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_0_M1.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_0_M1.xml
new file mode 100644
index 0000000..f0982aa
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_0_M1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_0_M1.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_0_M1.xml
new file mode 100644
index 0000000..6ba70f1
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_0_M1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_0_M1.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_0_M1.xml
new file mode 100644
index 0000000..467a7b6
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_0_M1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_0_M1.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_0_M1.xml
new file mode 100644
index 0000000..d33fe56
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_0_M1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_0_M1.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_0_M1.xml
new file mode 100644
index 0000000..1332c3d
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_0_M1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_0_M1.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_0_M1.xml
new file mode 100644
index 0000000..4e2a10f
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_0_M1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml
new file mode 100644
index 0000000..fbc1b16
--- /dev/null
+++ b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
index ad4fefc..8b9083f 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -3,6 +3,7 @@
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index b6d36bd..cae0d9d 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,86 +1,32 @@
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -213,59 +160,17 @@
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -301,157 +206,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
@@ -459,6 +369,12 @@
1515621994762
+
+
+
+
+
+
@@ -494,12 +410,36 @@
-
-
+
+
+
+
+
+
+
+
-
-
+
+
+
+ file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/singlylinkedlist/SinglyLinkedListTest.java
+ 76
+
+
+
+ file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/singlylinkedlist/SinglyLinkedList.java
+ 86
+
+
+
+
diff --git a/pom.xml b/pom.xml
index ffa3f40..87a2afa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,6 +7,14 @@
com.zipcodewilmington
singlylinkedlist
1.0-SNAPSHOT
+
+
+ junit
+ junit
+ 4.13.1
+ test
+
+
\ No newline at end of file
diff --git a/src/main/java/com/zipcodewilmington/singlylinkedlist/SinglyLinkedList.java b/src/main/java/com/zipcodewilmington/singlylinkedlist/SinglyLinkedList.java
index 2fb3165..2313555 100644
--- a/src/main/java/com/zipcodewilmington/singlylinkedlist/SinglyLinkedList.java
+++ b/src/main/java/com/zipcodewilmington/singlylinkedlist/SinglyLinkedList.java
@@ -1,7 +1,113 @@
package com.zipcodewilmington.singlylinkedlist;
+import java.lang.annotation.Target;
+
/**
* Created by leon on 1/10/18.
*/
public class SinglyLinkedList {
+ //Integer something;
+
+ //public SinglyLinkedList(T object){this.object=object;}
+ class Node {
+ Object data;
+ Node next;
+
+ public Node(Object data) {
+ this.data = data;
+ this.next = null;
+ }
+ }
+
+ public Node head = null;
+ public Node tail = null;
+ //node head/tail=last and first element
+
+
+ public void addNode(Object data) {
+ Node node = new Node(data);
+ if (head == null) {
+ head = node;
+ } else {
+ tail.next = node;
+ }
+ tail = node;
+ }
+
+ public Integer nodeSize() {
+ Integer count = 0;
+ Node current = head;
+ while (current != null) {
+ count++;
+ current = current.next;
+ }
+ return count;
+ }
+
+ public Object find(Object data) {
+ Integer index = 0;
+ Node current = head;
+ while (current != null) {
+ if (current.data == data) {
+ return index;
+ }
+ index++;
+ current = current.next;
+ }
+ return -1;
+ }
+
+ public Boolean contains(Object data) {
+ Node current = head;
+ while (current != null) {
+ if (current.data == data) {
+ return true;
+ }
+ current = current.next;
+ }
+ return false;
+ }
+
+ public SinglyLinkedList remove(Integer index) {
+ SinglyLinkedList singlyLinkedList= new SinglyLinkedList();
+ Integer indexOfNode=0;
+ Node current = head;
+ while(current!=null){
+ if(index!=indexOfNode){
+ singlyLinkedList.addNode(current.data);
+ }
+ indexOfNode++;
+ current = current.next;
+ }
+ return singlyLinkedList;
+ }
+
+
+ public SinglyLinkedList copy() {
+ SinglyLinkedList singlyLinkedList = new SinglyLinkedList();
+ Node current = head;
+ while (current!=null) {
+ singlyLinkedList.addNode(current.data);
+ current = current.next;
+ }
+ return singlyLinkedList;
+ }
+
+ public void sort(){
+ Node current=head;
+ for(int i=0;i (Integer)next.data){
+ Object temp=current.data;
+ current.data=next.data;
+ next.data=temp;
+ }
+ current=current.next;
+ }
+ }
+ }
}
+
+
diff --git a/src/test/java/com/zipcodewilmington/singlylinkedlist/SinglyLinkedListTest.java b/src/test/java/com/zipcodewilmington/singlylinkedlist/SinglyLinkedListTest.java
index 5cc057e..f9f9907 100644
--- a/src/test/java/com/zipcodewilmington/singlylinkedlist/SinglyLinkedListTest.java
+++ b/src/test/java/com/zipcodewilmington/singlylinkedlist/SinglyLinkedListTest.java
@@ -1,7 +1,101 @@
package com.zipcodewilmington.singlylinkedlist;
+import org.junit.Assert;
+
+import org.junit.Test;
+
+import javax.xml.soap.Node;
+import java.lang.annotation.Target;
+
/**
* Created by leon on 1/10/18.
*/
public class SinglyLinkedListTest {
+
+
+ @Test
+ public void TestAdd(){
+ //given
+ SinglyLinkedList singlyLinkedList=new SinglyLinkedList();
+ singlyLinkedList.addNode(2);
+ singlyLinkedList.addNode(3);
+ Integer expected=2;
+ //when
+ Integer actual= singlyLinkedList.nodeSize();
+ //then
+ Assert.assertEquals(expected,actual);
+
+ }
+@Test
+ public void TestSize(){
+ //given
+ SinglyLinkedList singlyLinkedList=new SinglyLinkedList();
+ singlyLinkedList.addNode("hi");
+ singlyLinkedList.addNode("hello");
+ Integer expected=2;
+
+ //when
+ Integer actual= singlyLinkedList.nodeSize();
+
+ //then
+ Assert.assertEquals(expected,actual);
+}
+
+@Test
+ public void TestFind(){
+ //given
+ SinglyLinkedList singlyLinkedList=new SinglyLinkedList();
+ Integer expectedIndex=2;
+ singlyLinkedList.addNode("hi");
+ singlyLinkedList.addNode("hello");
+ singlyLinkedList.addNode("vanakkam");
+ //when
+ Object actual=singlyLinkedList.find("vanakkam");
+ //then
+ Assert.assertEquals(expectedIndex,actual);
+ }
+
+ @Test
+ public void TestContains(){
+ //given
+ SinglyLinkedList singlyLinkedList=new SinglyLinkedList();
+ singlyLinkedList.addNode("hi");
+ singlyLinkedList.addNode("hello");
+ Boolean expected=true;
+
+ //when
+ Boolean actual=singlyLinkedList.contains("hello");
+
+ //then
+ Assert.assertEquals(expected,actual);
+ }
+
+
+ @Test
+ public void copy(){
+ //given
+ SinglyLinkedList singlyLinkedList=new SinglyLinkedList();
+ singlyLinkedList.addNode(2);
+ singlyLinkedList.addNode(3);
+ Integer expected=2;
+
+ //when
+ Integer actual= singlyLinkedList.copy().nodeSize();
+
+ //then
+ Assert.assertEquals(expected,actual);
+ }
+
+ @Test
+ public void sort(){
+ //given
+ SinglyLinkedList singlyLinkedList=new SinglyLinkedList();
+ singlyLinkedList.addNode(5);
+ singlyLinkedList.addNode(4);
+ singlyLinkedList.addNode(3);
+ singlyLinkedList.addNode(2);
+ Integer expected=4;
+ Integer actual=singlyLinkedList.nodeSize();
+ Assert.assertEquals(expected,actual);
+ }
}