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 @@ - + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - + + + - - - - - - + @@ -459,6 +369,12 @@ @@ -494,12 +410,36 @@ - - \ 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); + } }