diff --git a/.project b/.project
new file mode 100644
index 0000000000..6b4d50ed9a
--- /dev/null
+++ b/.project
@@ -0,0 +1,11 @@
+
+
+ coding2017
+
+
+
+
+
+
+
+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000..4824b80263
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git "a/group20/423184723/Test/\345\215\232\345\256\242\345\234\260\345\235\200" "b/group20/423184723/Test/\345\215\232\345\256\242\345\234\260\345\235\200"
new file mode 100644
index 0000000000..b5457af5b6
--- /dev/null
+++ "b/group20/423184723/Test/\345\215\232\345\256\242\345\234\260\345\235\200"
@@ -0,0 +1 @@
+http://www.cnblogs.com/yyssyh213/p/6442285.html
\ No newline at end of file
diff --git a/group20/423184723/src/basic/ArrayList.java b/group20/423184723/src/basic/ArrayList.java
new file mode 100644
index 0000000000..64a19bea8e
--- /dev/null
+++ b/group20/423184723/src/basic/ArrayList.java
@@ -0,0 +1,78 @@
+package com.coding.basic;
+
+import com.sun.media.sound.EmergencySoundbank;
+
+public class ArrayList implements List {
+ /**
+ * 列表中元素的个数
+ */
+ private int size = 0;
+
+ /**
+ * 初始化数组大小
+ */
+ private int arraySize = 100;
+ /**
+ * 初始化数组
+ */
+ private Object[] elementData = new Object[arraySize];
+
+ /**
+ * 添加方法
+ */
+ public void add(Object o){
+ if(size>=(arraySize*0.75)){
+ Object [] target = new Object[(int) (arraySize*1.5)];
+ System.arraycopy(elementData,0,target,0,arraySize);
+ target[size-1] = o;
+ size++;
+ }else if(size<(arraySize*0.75)){
+ elementData[size-1]=o;
+ size++;
+ }
+ }
+ /**
+ * 根据索引添加方法
+ */
+ public void add(int index, Object o){
+ if(size >= arraySize*0.75){
+ Object [] target = new Object[(int) (arraySize*1.5)];
+ System.arraycopy(elementData,0,target,0,arraySize);
+ for (int j = target.length;j>=index;j--){
+ target[j-1] = target[j-2];
+ }
+ target[index] = o;
+ size++;
+ }else if(size < arraySize*0.75){
+ for (int j = elementData.length;j>=index;j--){
+ elementData[j-1] = elementData[j-2];
+ }
+ elementData[index] = o;
+ size++;
+ }
+ }
+ /**
+ * 根据索引获取对象
+ */
+ public Object get(int index){
+ return elementData[index];
+ }
+ /**
+ * 根据索引移除对象
+ */
+ public Object remove(int index){
+ for (int i = index; i < elementData.length; i++) {
+ elementData[i]=elementData[i+1];
+ size++;
+ }
+ return elementData[index];
+ }
+ /**
+ * 获取数组大小
+ */
+ public int size(){
+ return this.size;
+ }
+
+
+}
diff --git a/group20/423184723/src/com/coding/basic/BinaryTreeNode.java b/group20/423184723/src/basic/BinaryTreeNode.java
similarity index 100%
rename from group20/423184723/src/com/coding/basic/BinaryTreeNode.java
rename to group20/423184723/src/basic/BinaryTreeNode.java
diff --git a/group20/423184723/src/com/coding/basic/Iterator.java b/group20/423184723/src/basic/Iterator.java
similarity index 100%
rename from group20/423184723/src/com/coding/basic/Iterator.java
rename to group20/423184723/src/basic/Iterator.java
diff --git a/group20/423184723/src/basic/LinkedList.java b/group20/423184723/src/basic/LinkedList.java
new file mode 100644
index 0000000000..9caf065304
--- /dev/null
+++ b/group20/423184723/src/basic/LinkedList.java
@@ -0,0 +1,146 @@
+package com.coding.basic;
+
+import com.coding.basic.LinkedList.Node;
+
+public class LinkedList implements List {
+
+ private Node head;
+ private int size;
+
+ public void add(Object o){
+ if (head.data == null) {
+ head.data = o;
+ head.next = null;
+ size++;
+ return;
+ }
+ Node node = new Node(o);
+ Node curr = head;
+ while (curr.next != null) {
+ curr = curr.next;
+ }
+ curr.next = node;
+ size++;
+ }
+ public void add(int index , Object o){
+ if (index < 0 || index > size) {
+ System.out.println(index + "无效指数");
+ return;
+ }
+ if (head.data == null) {
+ if (index == 0) {
+ head.data = o;
+ head.next = null;
+ size++;
+ return;
+ } else {
+ System.out.println("无效指数");
+ return;
+ }
+ }
+ Node node = new Node(o);
+ Node curr = head;
+ for (int i = 0; i < index - 1; i++) {
+ curr = curr.next;
+ }
+ Node temp = curr.next;
+ curr.next = node;
+ node.next = temp;
+ size++;
+ }
+ public Object get(int index){
+ if (index < 0 || index > size) {
+ System.out.println(index + " is invalid index!");
+ return null;
+ }
+ Node result = head;
+ for (int i = 0; i < index; i++) {
+ result = result.next;
+ }
+ return result;
+ }
+ public Object remove(int index){
+ if (index < 0 || index > size) {
+ System.out.println(index + " is invalid index!");
+ return null;
+ }
+ Node curr = head;
+ for (int i = 0; i < index - 1; i++) {
+ curr = curr.next;
+ }
+ Node result = curr.next;
+ curr.next = curr.next.next;
+ size--;
+ return result;
+ }
+
+ public int size(){
+ return this.size;
+ }
+
+ public void addFirst(Object o){
+ if (head.data == null) {
+ head.data = o;
+ head.next = null;
+ size++;
+ return;
+ }
+ Node temp = head;
+ head = new Node(o);
+ head.next = temp;
+ size++;
+ }
+ public void addLast(Object o){
+ if (head.data == null) {
+ head.data = o;
+ head.next = null;
+ size++;
+ return;
+ }
+ Node node = new Node(o);
+ Node curr = head;
+ while (curr.next != null) {
+ curr = curr.next;
+ }
+ curr.next = node;
+ size++;
+ }
+ public Object removeFirst(){
+ if (head.data == null) {
+ return null;
+ }
+ Node result = head;
+ head = head.next;
+ size--;
+ return result;
+ }
+ public Object removeLast(){
+ if (head.data == null) {
+ return null;
+ }
+ Node curr = head;
+ for (int i = 0; i < size - 1; i++) {
+ curr = curr.next;
+ }
+ Node result = curr.next;
+ curr.next = null;
+ size--;
+ return result;
+ }
+ public Iterator iterator(){
+ return null;
+ }
+
+
+ private static class Node{
+ Object data;
+ Node next;
+ public Node(Object o) {
+ data = o;
+ next = null;
+ }
+
+
+
+ }
+}
diff --git a/group20/423184723/src/com/coding/basic/List.java b/group20/423184723/src/basic/List.java
similarity index 100%
rename from group20/423184723/src/com/coding/basic/List.java
rename to group20/423184723/src/basic/List.java
diff --git a/group20/423184723/src/basic/Queue.java b/group20/423184723/src/basic/Queue.java
new file mode 100644
index 0000000000..bb4e6bef5c
--- /dev/null
+++ b/group20/423184723/src/basic/Queue.java
@@ -0,0 +1,29 @@
+package com.coding.basic;
+
+public class Queue {
+
+ private LinkedList list = new LinkedList();
+ public void enQueue(Object o){
+ list.add(o);
+ }
+
+ public Object deQueue(){
+ int length = list.size();
+ if (length == 0) {
+ return null;
+ }
+ return list.removeFirst();
+ }
+
+ public boolean isEmpty(){
+ if (list.size() == 0) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public int size(){
+ return list.size;
+ }
+}
diff --git a/group20/423184723/src/basic/Stack.java b/group20/423184723/src/basic/Stack.java
new file mode 100644
index 0000000000..6f3def6f0f
--- /dev/null
+++ b/group20/423184723/src/basic/Stack.java
@@ -0,0 +1,35 @@
+package com.coding.basic;
+
+public class Stack {
+ private ArrayList elementData = new ArrayList();
+
+ public void push(Object o){
+ elementData.add(o);
+ }
+
+ public Object pop(){
+ int length = elementData.size();
+ if (length == 0) {
+ return null;
+ }
+ return elementData.remove(length - 1);
+ }
+
+ public Object peek(){
+ int length = elementData.size();
+ if (length == 0) {
+ return null;
+ }
+ return elementData.get(length - 1);
+ }
+ public boolean isEmpty(){
+ if (elementData.size() != 0) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ public int size(){
+ return elementData.size();
+ }
+}
diff --git a/group20/423184723/src/com/coding/basic/ArrayList.java b/group20/423184723/src/com/coding/basic/ArrayList.java
deleted file mode 100644
index 1f185736f9..0000000000
--- a/group20/423184723/src/com/coding/basic/ArrayList.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.coding.basic;
-
-public class ArrayList implements List {
-
- private int size = 0;
-
- private Object[] elementData = new Object[100];
-
- public void add(Object o){
-
- }
- public void add(int index, Object o){
-
- }
-
- public Object get(int index){
- return null;
- }
-
- public Object remove(int index){
- return null;
- }
-
- public int size(){
- return -1;
- }
-
- public Iterator iterator(){
- return null;
- }
-
-}
diff --git a/group20/423184723/src/com/coding/basic/LinkedList.java b/group20/423184723/src/com/coding/basic/LinkedList.java
deleted file mode 100644
index e2c4e5e795..0000000000
--- a/group20/423184723/src/com/coding/basic/LinkedList.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.coding.basic;
-
-public class LinkedList implements List {
-
- private Node head;
-
- public void add(Object o){
-
- }
- public void add(int index , Object o){
-
- }
- public Object get(int index){
- return null;
- }
- public Object remove(int index){
- return null;
- }
-
- public int size(){
- return -1;
- }
-
- public void addFirst(Object o){
-
- }
- public void addLast(Object o){
-
- }
- public Object removeFirst(){
- return null;
- }
- public Object removeLast(){
- return null;
- }
- public Iterator iterator(){
- return null;
- }
-
-
- private static class Node{
- Object data;
- Node next;
-
- }
-}
diff --git a/group20/423184723/src/com/coding/basic/Queue.java b/group20/423184723/src/com/coding/basic/Queue.java
deleted file mode 100644
index 36e516e266..0000000000
--- a/group20/423184723/src/com/coding/basic/Queue.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.coding.basic;
-
-public class Queue {
-
- public void enQueue(Object o){
- }
-
- public Object deQueue(){
- return null;
- }
-
- public boolean isEmpty(){
- return false;
- }
-
- public int size(){
- return -1;
- }
-}
diff --git a/group20/423184723/src/com/coding/basic/Stack.java b/group20/423184723/src/com/coding/basic/Stack.java
deleted file mode 100644
index a5a04de76d..0000000000
--- a/group20/423184723/src/com/coding/basic/Stack.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.coding.basic;
-
-public class Stack {
- private ArrayList elementData = new ArrayList();
-
- public void push(Object o){
- }
-
- public Object pop(){
- return null;
- }
-
- public Object peek(){
- return null;
- }
- public boolean isEmpty(){
- return false;
- }
- public int size(){
- return -1;
- }
-}