From c04c587e050c5513497c414a3d9d44b618a26938 Mon Sep 17 00:00:00 2001
From: waking2017 <waking508@163.com>
Date: Fri, 24 Feb 2017 15:59:37 +0800
Subject: [PATCH 01/31] work1

---
 group05/441517454/work1/.classpath            |   6 +
 group05/441517454/work1/.gitignore            |   1 +
 group05/441517454/work1/.project              |  17 ++
 .../.settings/org.eclipse.jdt.core.prefs      |  11 ++
 .../work1/src/com/coding/basic/ArrayList.java | 106 ++++++++++++
 .../src/com/coding/basic/BinaryTreeNode.java  |  32 ++++
 .../work1/src/com/coding/basic/Iterator.java  |   7 +
 .../src/com/coding/basic/LinkedList.java      | 156 ++++++++++++++++++
 .../work1/src/com/coding/basic/List.java      |   9 +
 .../work1/src/com/coding/basic/Queue.java     |  30 ++++
 .../work1/src/com/coding/basic/Stack.java     |  30 ++++
 .../work1/src/com/coding/basic/Test1.java     |  48 ++++++
 12 files changed, 453 insertions(+)
 create mode 100644 group05/441517454/work1/.classpath
 create mode 100644 group05/441517454/work1/.gitignore
 create mode 100644 group05/441517454/work1/.project
 create mode 100644 group05/441517454/work1/.settings/org.eclipse.jdt.core.prefs
 create mode 100644 group05/441517454/work1/src/com/coding/basic/ArrayList.java
 create mode 100644 group05/441517454/work1/src/com/coding/basic/BinaryTreeNode.java
 create mode 100644 group05/441517454/work1/src/com/coding/basic/Iterator.java
 create mode 100644 group05/441517454/work1/src/com/coding/basic/LinkedList.java
 create mode 100644 group05/441517454/work1/src/com/coding/basic/List.java
 create mode 100644 group05/441517454/work1/src/com/coding/basic/Queue.java
 create mode 100644 group05/441517454/work1/src/com/coding/basic/Stack.java
 create mode 100644 group05/441517454/work1/src/com/coding/basic/Test1.java

diff --git a/group05/441517454/work1/.classpath b/group05/441517454/work1/.classpath
new file mode 100644
index 0000000000..fceb4801b5
--- /dev/null
+++ b/group05/441517454/work1/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/group05/441517454/work1/.gitignore b/group05/441517454/work1/.gitignore
new file mode 100644
index 0000000000..ae3c172604
--- /dev/null
+++ b/group05/441517454/work1/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/group05/441517454/work1/.project b/group05/441517454/work1/.project
new file mode 100644
index 0000000000..49a7fabffd
--- /dev/null
+++ b/group05/441517454/work1/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>work1</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/group05/441517454/work1/.settings/org.eclipse.jdt.core.prefs b/group05/441517454/work1/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..3a21537071
--- /dev/null
+++ b/group05/441517454/work1/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/group05/441517454/work1/src/com/coding/basic/ArrayList.java b/group05/441517454/work1/src/com/coding/basic/ArrayList.java
new file mode 100644
index 0000000000..01671f55d8
--- /dev/null
+++ b/group05/441517454/work1/src/com/coding/basic/ArrayList.java
@@ -0,0 +1,106 @@
+package com.coding.basic;
+
+public class ArrayList implements List {
+	
+	private int size = 0;
+	
+	private Object[] elementData = new Object[100];
+	
+	public void add(Object o){
+		
+		if(size<elementData.length)
+		{elementData[size] = o;
+			this.size++;}
+		else{
+			elementData = grow(elementData,1);
+			elementData[size] = o;
+			this.size++;
+		}
+		
+		
+	}
+	
+	public void add(int index, Object o){	
+			if(index<(this.size)&&this.size<elementData.length)
+			{
+				for(int i=this.size;i>index;i--){
+					elementData[i]=elementData[i-1];
+				}
+				elementData[index] = o;
+				this.size++;
+			}
+			else if(index<(this.size)&&this.size==elementData.length)
+				{
+				elementData = grow(elementData,1);
+				elementData[index] = o;
+				this.size++;
+				}
+			else{
+				System.out.println("index/>size����ʧ��");
+				
+			}
+			
+		
+	}
+	
+	public Object get(int index){
+		
+		if(this.size>0&&index<(this.size))
+		return elementData[index];
+		else{
+			return null;
+		}
+	}
+	
+	public Object remove(int index){
+		
+		if(this.size>0&&index<(this.size))
+		{  Object o= elementData[index];
+			for(int i=index;i<this.size;i++){
+				elementData[i]=elementData[i+1];
+			}
+			this.size--;
+			return o;
+			
+			}
+			else{
+				return null;
+			}
+	}
+	
+	public int size(){
+		return this.size;
+	}
+	
+	public Iterator iterator(){
+		return new ArrayListIterator(this);
+	}
+	
+	private static Object[] grow (Object[]src,int size){
+		Object[] target = new Object[src.length+size];
+		System.arraycopy(src, 0, target, 0, src.length);
+		return target;
+	}
+	private class ArrayListIterator implements Iterator{
+	private	ArrayList arrayList;
+		private int pos = 0;
+public ArrayListIterator(ArrayList arrayList) {
+	this.arrayList =arrayList;
+	
+}
+
+		@Override
+		public boolean hasNext() {
+			pos++;
+			if(pos>arrayList.size){				
+				return false;
+			}else
+			return true;
+		}
+
+		@Override
+		public Object next() {
+			
+			return  arrayList.get(pos-1);
+		}}
+}
diff --git a/group05/441517454/work1/src/com/coding/basic/BinaryTreeNode.java b/group05/441517454/work1/src/com/coding/basic/BinaryTreeNode.java
new file mode 100644
index 0000000000..d7ac820192
--- /dev/null
+++ b/group05/441517454/work1/src/com/coding/basic/BinaryTreeNode.java
@@ -0,0 +1,32 @@
+package com.coding.basic;
+
+public class BinaryTreeNode {
+	
+	private Object data;
+	private BinaryTreeNode left;
+	private BinaryTreeNode right;
+	
+	public Object getData() {
+		return data;
+	}
+	public void setData(Object data) {
+		this.data = data;
+	}
+	public BinaryTreeNode getLeft() {
+		return left;
+	}
+	public void setLeft(BinaryTreeNode left) {
+		this.left = left;
+	}
+	public BinaryTreeNode getRight() {
+		return right;
+	}
+	public void setRight(BinaryTreeNode right) {
+		this.right = right;
+	}
+	
+	public BinaryTreeNode insert(Object o){
+		return  null;
+	}
+	
+}
diff --git a/group05/441517454/work1/src/com/coding/basic/Iterator.java b/group05/441517454/work1/src/com/coding/basic/Iterator.java
new file mode 100644
index 0000000000..06ef6311b2
--- /dev/null
+++ b/group05/441517454/work1/src/com/coding/basic/Iterator.java
@@ -0,0 +1,7 @@
+package com.coding.basic;
+
+public interface Iterator {
+	public boolean hasNext();
+	public Object next();
+
+}
diff --git a/group05/441517454/work1/src/com/coding/basic/LinkedList.java b/group05/441517454/work1/src/com/coding/basic/LinkedList.java
new file mode 100644
index 0000000000..5eefddce8b
--- /dev/null
+++ b/group05/441517454/work1/src/com/coding/basic/LinkedList.java
@@ -0,0 +1,156 @@
+package com.coding.basic;
+
+
+
+public class LinkedList implements List {
+	
+	private Node head;
+	private Node body;
+	//private Node body1;
+	private int size = 0;
+	
+	
+	public void add(Object o){
+		if(null == head){
+			head = new Node();
+			head.data = o;
+			head.next = null;
+			size++;
+		}
+//		else if(head.next == null){ 
+//			
+//			head.next =new Node();
+//			head.next.data =  o;
+//			head.next.next = null;
+//			body=head.next;
+//			size++;
+//		}
+		else {
+			body=head;
+			while(!(body.next ==null))
+			{body =body.next;}
+			body.next =new Node();
+			body.next.data =o;
+			body.next.next =null;
+			size++;		
+			}
+		
+	
+	}
+	public void add(int index , Object o){
+		
+	}
+	public Object get(int index){
+		 if (index<size)
+			{body=head;
+			for (int i=0;i<index;i++)
+				{
+					body =body.next;
+				}
+				return body.data;
+			}else return null;
+			
+	}
+	public Object remove(int index){
+		 if (index<size&&index>1)
+			{body=head;
+			for (int i=0;i<index-1;i++)
+				{
+					body =body.next;
+				}
+			body.next=body.next.next;
+			size--;	
+				return body.next.data;
+			}else return null;
+		
+	}
+	
+	public int size(){
+		return this.size;
+	}
+	
+	public void addFirst(Object o){
+		if(null == head){
+			head = new Node();
+			head.data = o;
+			head.next = null;
+			size++;
+		}else { 			
+			body =new Node();
+			body.data =  o;
+			body.next = head;
+			head=body;
+			size++;
+			}
+	}
+	public void addLast(Object o){
+		if(!(head==null))			
+			 {
+				body=head;
+				while(!(body.next ==null))
+				{body =body.next;}
+				body.next =new Node();
+				body.next.data =o;
+				body.next.next =body.next;
+				size++;		
+				}else
+					System.out.println("���Ƚ���ͷ���");
+		
+	}
+	public Object removeFirst(){
+		if(!(head==null))			
+		 {
+			body=head;
+			head =head.next;
+			size--;
+			return body.data;
+			}else
+
+		return null;
+	}
+	public Object removeLast(){
+		if (!(head==null))
+		{body=head;
+		for (int i=0;i<size-2;i++)
+			{
+				body =body.next;
+			}
+		body.next=body.next;
+		size--;	
+			return body.next.data;
+		}else return null;
+	
+	}
+	public Iterator iterator(){
+		return new LinkedListIterator(this);
+	}
+	
+	
+	private static  class Node{
+		Object data;
+		Node next;
+		
+	}
+	private class LinkedListIterator implements Iterator{
+		private	LinkedList linkedList;
+			private int pos = 0;
+	public LinkedListIterator(LinkedList linkedList) {
+		this.linkedList =linkedList;
+		
+	}
+
+			@Override
+			public boolean hasNext() {
+				pos++;
+				if(pos>linkedList.size){				
+					return false;
+				}else
+				return true;
+			}
+
+			@Override
+			public Object next() {
+				
+				return  linkedList.get(pos-1);
+			}}
+}
diff --git a/group05/441517454/work1/src/com/coding/basic/List.java b/group05/441517454/work1/src/com/coding/basic/List.java
new file mode 100644
index 0000000000..10d13b5832
--- /dev/null
+++ b/group05/441517454/work1/src/com/coding/basic/List.java
@@ -0,0 +1,9 @@
+package com.coding.basic;
+
+public interface List {
+	public void add(Object o);
+	public void add(int index, Object o);
+	public Object get(int index);
+	public Object remove(int index);
+	public int size();
+}
diff --git a/group05/441517454/work1/src/com/coding/basic/Queue.java b/group05/441517454/work1/src/com/coding/basic/Queue.java
new file mode 100644
index 0000000000..cae520dbce
--- /dev/null
+++ b/group05/441517454/work1/src/com/coding/basic/Queue.java
@@ -0,0 +1,30 @@
+package com.coding.basic;
+
+public class Queue {
+	private ArrayList elementData = new ArrayList();
+	public void enQueue(Object o){	
+		elementData.add(o);
+	}
+	
+	public Object deQueue(){
+		
+		if(elementData.size()>0)
+			
+		{ 
+		elementData.remove(0);
+		return elementData.remove(0);
+		}
+		else return null;
+		}
+	
+	public boolean isEmpty(){
+		if(elementData.size()>0)
+			return false;
+			else return true;
+		
+	}
+	
+	public int size(){
+		return elementData.size();
+	}
+}
diff --git a/group05/441517454/work1/src/com/coding/basic/Stack.java b/group05/441517454/work1/src/com/coding/basic/Stack.java
new file mode 100644
index 0000000000..40e8518b24
--- /dev/null
+++ b/group05/441517454/work1/src/com/coding/basic/Stack.java
@@ -0,0 +1,30 @@
+package com.coding.basic;
+
+public class Stack {
+	private ArrayList elementData = new ArrayList();
+	
+	public void push(Object o){	
+		elementData.add(o);
+	}
+	
+	public Object pop(){
+		if(elementData.size()>0)
+			
+			{ int size =elementData.size();
+			elementData.remove(size-1);
+		return elementData.remove(size-1);}
+		else return null;
+	}
+	
+	public Object peek(){
+		return elementData.get(elementData.size()-1);
+	}
+	public boolean isEmpty(){
+		if(elementData.size()>0)
+		return false;
+		else return true;
+	}
+	public int size(){
+		return elementData.size();
+	}
+}
diff --git a/group05/441517454/work1/src/com/coding/basic/Test1.java b/group05/441517454/work1/src/com/coding/basic/Test1.java
new file mode 100644
index 0000000000..b7f644c95d
--- /dev/null
+++ b/group05/441517454/work1/src/com/coding/basic/Test1.java
@@ -0,0 +1,48 @@
+package com.coding.basic;
+
+public class Test1 {
+ public static void main (String[] args){
+//	ArrayList arr = new ArrayList();
+//	arr.add(1);
+//	arr.add(2);
+//	arr.add(3);
+//	arr.add(4);
+//	arr.remove(3);
+//	arr.add(6);
+//	arr.add(7);
+//	System.out.println(arr.size()+"_");
+//	Iterator it =arr.iterator();
+//	while(it.hasNext()){
+//	System.out.println(it.next());
+//	}
+//	 LinkedList link = new LinkedList();
+//	 link.add(0);
+//	 link.add(1);
+//	 link.add(2);
+//	 link.add(3);
+//	 link.add(4);
+//	 link.add(5);
+//	 link.remove(2);
+//	 link.addFirst(100);
+//	 link.addLast(200);
+//	 //link.removeFirst();
+//	 //link.removeLast();
+////	 System.out.println(link.size()+"_");
+////	 System.out.println(link.get(0));
+////	System.out.println(link.get(link.size()-1));
+////	
+//
+//	Iterator it =link.iterator();
+//	while(it.hasNext()){
+//	System.out.println(it.next());
+//	}
+	 Stack st = new Stack();
+	 st.push(0);
+	 st.push(1);
+	 st.push(2);
+	 st.push(4);
+	 st.push(5);
+	 st.pop();
+	 System.out.println(st.peek());
+ }
+}
\ No newline at end of file

From afde9da6a16036a963db4e81e57633d7606795ac Mon Sep 17 00:00:00 2001
From: C-BoBo <183127807@qq.com>
Date: Fri, 24 Feb 2017 17:10:17 +0800
Subject: [PATCH 02/31] HomeWork0226
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

ArrayList,LinkList,Stack,Queue的实现
---
 group05/183127807/HomeWork0226/.idea/misc.xml |   22 +
 .../183127807/HomeWork0226/.idea/modules.xml  |    8 +
 group05/183127807/HomeWork0226/.idea/vcs.xml  |    6 +
 .../HomeWork0226/.idea/workspace.xml          | 1056 +++++++++++++++++
 .../183127807/HomeWork0226/HomeWork0226.iml   |   11 +
 .../src/com/coding/basic/ArrayList.java       |   85 ++
 .../src/com/coding/basic/BinaryTreeNode.java  |   32 +
 .../src/com/coding/basic/Iterator.java        |    7 +
 .../src/com/coding/basic/LinkedList.java      |  142 +++
 .../src/com/coding/basic/List.java            |    9 +
 .../src/com/coding/basic/Queue.java           |   22 +
 .../src/com/coding/basic/Stack.java           |   35 +
 12 files changed, 1435 insertions(+)
 create mode 100644 group05/183127807/HomeWork0226/.idea/misc.xml
 create mode 100644 group05/183127807/HomeWork0226/.idea/modules.xml
 create mode 100644 group05/183127807/HomeWork0226/.idea/vcs.xml
 create mode 100644 group05/183127807/HomeWork0226/.idea/workspace.xml
 create mode 100644 group05/183127807/HomeWork0226/HomeWork0226.iml
 create mode 100644 group05/183127807/HomeWork0226/src/com/coding/basic/ArrayList.java
 create mode 100644 group05/183127807/HomeWork0226/src/com/coding/basic/BinaryTreeNode.java
 create mode 100644 group05/183127807/HomeWork0226/src/com/coding/basic/Iterator.java
 create mode 100644 group05/183127807/HomeWork0226/src/com/coding/basic/LinkedList.java
 create mode 100644 group05/183127807/HomeWork0226/src/com/coding/basic/List.java
 create mode 100644 group05/183127807/HomeWork0226/src/com/coding/basic/Queue.java
 create mode 100644 group05/183127807/HomeWork0226/src/com/coding/basic/Stack.java

diff --git a/group05/183127807/HomeWork0226/.idea/misc.xml b/group05/183127807/HomeWork0226/.idea/misc.xml
new file mode 100644
index 0000000000..2e47c90c3c
--- /dev/null
+++ b/group05/183127807/HomeWork0226/.idea/misc.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+  <component name="masterDetails">
+    <states>
+      <state key="ProjectJDKs.UI">
+        <settings>
+          <last-edited>1.8</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+    </states>
+  </component>
+</project>
\ No newline at end of file
diff --git a/group05/183127807/HomeWork0226/.idea/modules.xml b/group05/183127807/HomeWork0226/.idea/modules.xml
new file mode 100644
index 0000000000..e8f27e7b12
--- /dev/null
+++ b/group05/183127807/HomeWork0226/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/HomeWork0226.iml" filepath="$PROJECT_DIR$/HomeWork0226.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/group05/183127807/HomeWork0226/.idea/vcs.xml b/group05/183127807/HomeWork0226/.idea/vcs.xml
new file mode 100644
index 0000000000..c2365ab11f
--- /dev/null
+++ b/group05/183127807/HomeWork0226/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/../../.." vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/group05/183127807/HomeWork0226/.idea/workspace.xml b/group05/183127807/HomeWork0226/.idea/workspace.xml
new file mode 100644
index 0000000000..bea69f9904
--- /dev/null
+++ b/group05/183127807/HomeWork0226/.idea/workspace.xml
@@ -0,0 +1,1056 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ChangeListManager">
+    <list default="true" id="d5122146-7cd8-40d4-a36b-01cd6481aebe" name="Default" comment="" />
+    <ignored path="$PROJECT_DIR$/out/" />
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
+    <option name="TRACKING_ENABLED" value="true" />
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="CreatePatchCommitExecutor">
+    <option name="PATCH_PATH" value="" />
+  </component>
+  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
+  <component name="FileEditorManager">
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
+      <file leaf-file-name="List.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/coding/basic/List.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="110">
+              <caret line="5" column="33" lean-forward="false" selection-start-line="5" selection-start-column="33" selection-end-line="5" selection-end-column="33" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="ArrayList.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/coding/basic/ArrayList.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="242">
+              <caret line="36" column="0" lean-forward="false" selection-start-line="36" selection-start-column="0" selection-end-line="36" selection-end-column="0" />
+              <folding>
+                <element signature="imports" expanded="true" />
+                <element signature="method#add#0;class#ArrayList#0" expanded="false" />
+                <element signature="method#add#1;class#ArrayList#0" expanded="false" />
+                <element signature="method#get#0;class#ArrayList#0" expanded="false" />
+                <element signature="method#remove#0;class#ArrayList#0" expanded="false" />
+                <element signature="class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+                <element signature="method#next#0;class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+                <element signature="method#ensureCapacity#0;class#ArrayList#0" expanded="false" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="LinkedList.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/coding/basic/LinkedList.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="330">
+              <caret line="118" column="20" lean-forward="false" selection-start-line="118" selection-start-column="20" selection-end-line="118" selection-end-column="20" />
+              <folding>
+                <element signature="method#LinkedList#0;class#LinkedList#0" expanded="false" />
+                <element signature="method#add#1;class#LinkedList#0" expanded="false" />
+                <element signature="method#get#0;class#LinkedList#0" expanded="false" />
+                <element signature="method#remove#0;class#LinkedList#0" expanded="false" />
+                <element signature="method#addFirst#0;class#LinkedList#0" expanded="false" />
+                <element signature="method#addLast#0;class#LinkedList#0" expanded="false" />
+                <element signature="method#removeFirst#0;class#LinkedList#0" expanded="false" />
+                <element signature="method#removeLast#0;class#LinkedList#0" expanded="false" />
+                <element signature="e#2045#2046#0" expanded="true" />
+                <element signature="e#2063#2064#0" expanded="true" />
+                <element signature="class#LinkedListIterator#0;class#LinkedList#0" expanded="false" />
+                <element signature="method#next#0;class#LinkedListIterator#0;class#LinkedList#0" expanded="false" />
+                <element signature="class#Node#0;class#LinkedList#0" expanded="false" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Stack.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Stack.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="264">
+              <caret line="26" column="52" lean-forward="true" selection-start-line="26" selection-start-column="52" selection-end-line="26" selection-end-column="52" />
+              <folding>
+                <element signature="method#push#0;class#Stack#0" expanded="false" />
+                <element signature="method#pop#0;class#Stack#0" expanded="false" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Queue.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Queue.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="418">
+              <caret line="19" column="32" lean-forward="false" selection-start-line="19" selection-start-column="32" selection-end-line="19" selection-end-column="32" />
+              <folding>
+                <element signature="e#131#132#0" expanded="true" />
+                <element signature="e#159#160#0" expanded="true" />
+                <element signature="e#290#291#0" expanded="true" />
+                <element signature="e#327#328#0" expanded="true" />
+                <element signature="e#349#350#0" expanded="true" />
+                <element signature="e#380#381#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Iterator.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Iterator.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="44">
+              <caret line="2" column="17" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="BinaryTreeNode.java" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/com/coding/basic/BinaryTreeNode.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="44">
+              <caret line="2" column="13" lean-forward="true" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="27" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
+  </component>
+  <component name="Git.Settings">
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../../.." />
+  </component>
+  <component name="GradleLocalSettings">
+    <option name="externalProjectsViewState">
+      <projects_view />
+    </option>
+  </component>
+  <component name="IdeDocumentHistory">
+    <option name="CHANGED_PATHS">
+      <list>
+        <option value="$PROJECT_DIR$/src/com/coding/basic/List.java" />
+        <option value="$PROJECT_DIR$/src/com/coding/basic/ArrayList.java" />
+        <option value="$PROJECT_DIR$/src/com/coding/basic/Stack.java" />
+        <option value="$PROJECT_DIR$/src/com/coding/basic/LinkedList.java" />
+        <option value="$PROJECT_DIR$/src/com/coding/basic/Queue.java" />
+      </list>
+    </option>
+  </component>
+  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="JsGulpfileManager">
+    <detection-done>true</detection-done>
+    <sorting>DEFINITION_ORDER</sorting>
+  </component>
+  <component name="ProjectFrameBounds">
+    <option name="x" value="-8" />
+    <option name="y" value="-8" />
+    <option name="width" value="1382" />
+    <option name="height" value="744" />
+  </component>
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
+  <component name="ProjectView">
+    <navigator currentView="ProjectPane" proportions="" version="1">
+      <flattenPackages />
+      <showMembers />
+      <showModules />
+      <showLibraryContents />
+      <hideEmptyPackages />
+      <abbreviatePackageNames />
+      <autoscrollToSource />
+      <autoscrollFromSource />
+      <sortByType />
+      <manualOrder />
+      <foldersAlwaysOnTop value="true" />
+    </navigator>
+    <panes>
+      <pane id="Scratches" />
+      <pane id="PackagesPane" />
+      <pane id="ProjectPane">
+        <subPane>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="HomeWork0226" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="External Libraries" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="HomeWork0226" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="HomeWork0226" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="HomeWork0226" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="HomeWork0226" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="basic" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+        </subPane>
+      </pane>
+      <pane id="Scope" />
+    </panes>
+  </component>
+  <component name="PropertiesComponent">
+    <property name="settings.editor.selected.configurable" value="vcs.Git" />
+    <property name="WebServerToolWindowFactoryState" value="false" />
+    <property name="aspect.path.notification.shown" value="true" />
+    <property name="last_opened_file_path" value="G:/Java编程/JSP Poject" />
+    <property name="js.eslint.eslintPackage" value="" />
+  </component>
+  <component name="RecentsManager">
+    <key name="CopyFile.RECENT_KEYS">
+      <recent name="G:\mygit\coding2017\group05\183127807\HomeWork0226\src" />
+    </key>
+  </component>
+  <component name="RunManager">
+    <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
+      <module name="" />
+      <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
+      <option name="PROGRAM_PARAMETERS" />
+      <predefined_log_file id="idea.log" enabled="true" />
+      <method />
+    </configuration>
+    <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android App">
+      <module name="" />
+      <option name="DEPLOY" value="true" />
+      <option name="ARTIFACT_NAME" value="" />
+      <option name="PM_INSTALL_OPTIONS" value="" />
+      <option name="ACTIVITY_EXTRA_FLAGS" value="" />
+      <option name="MODE" value="default_activity" />
+      <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
+      <option name="PREFERRED_AVD" value="" />
+      <option name="CLEAR_LOGCAT" value="false" />
+      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
+      <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
+      <option name="FORCE_STOP_RUNNING_APP" value="true" />
+      <option name="DEBUGGER_TYPE" value="Java" />
+      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
+      <option name="PREFERRED_AVD" value="" />
+      <Java />
+      <Profilers>
+        <option name="ENABLE_ADVANCED_PROFILING" value="true" />
+        <option name="GAPID_ENABLED" value="false" />
+        <option name="GAPID_DISABLE_PCS" value="false" />
+        <option name="SUPPORT_LIB_ENABLED" value="true" />
+        <option name="INSTRUMENTATION_ENABLED" value="true" />
+      </Profilers>
+      <option name="DEEP_LINK" value="" />
+      <option name="ACTIVITY_CLASS" value="" />
+      <method />
+    </configuration>
+    <configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
+      <module name="" />
+      <option name="TESTING_TYPE" value="0" />
+      <option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
+      <option name="METHOD_NAME" value="" />
+      <option name="CLASS_NAME" value="" />
+      <option name="PACKAGE_NAME" value="" />
+      <option name="EXTRA_OPTIONS" value="" />
+      <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
+      <option name="PREFERRED_AVD" value="" />
+      <option name="CLEAR_LOGCAT" value="false" />
+      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
+      <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
+      <option name="FORCE_STOP_RUNNING_APP" value="true" />
+      <option name="DEBUGGER_TYPE" value="Java" />
+      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
+      <option name="PREFERRED_AVD" value="" />
+      <Java />
+      <Profilers>
+        <option name="ENABLE_ADVANCED_PROFILING" value="true" />
+        <option name="GAPID_ENABLED" value="false" />
+        <option name="GAPID_DISABLE_PCS" value="false" />
+        <option name="SUPPORT_LIB_ENABLED" value="true" />
+        <option name="INSTRUMENTATION_ENABLED" value="true" />
+      </Profilers>
+      <method />
+    </configuration>
+    <configuration default="true" type="Applet" factoryName="Applet">
+      <option name="HTML_USED" value="false" />
+      <option name="WIDTH" value="400" />
+      <option name="HEIGHT" value="300" />
+      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
+      <module />
+      <method />
+    </configuration>
+    <configuration default="true" type="Application" factoryName="Application">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="ArquillianJUnit" factoryName="" nameIsGenerated="true">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <option name="arquillianRunConfiguration">
+        <value>
+          <option name="containerStateName" value="" />
+        </value>
+      </option>
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="TEST_OBJECT" value="class" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <envs />
+      <patterns />
+      <method />
+    </configuration>
+    <configuration default="true" type="ArquillianTestNG" factoryName="">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <option name="arquillianRunConfiguration">
+        <value>
+          <option name="containerStateName" value="" />
+        </value>
+      </option>
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="SUITE_NAME" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="GROUP_NAME" />
+      <option name="TEST_OBJECT" value="CLASS" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="OUTPUT_DIRECTORY" />
+      <option name="ANNOTATION_TYPE" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <option name="USE_DEFAULT_REPORTERS" value="false" />
+      <option name="PROPERTIES_FILE" />
+      <envs />
+      <properties />
+      <listeners />
+      <method />
+    </configuration>
+    <configuration default="true" type="Cold Fusion runner description" factoryName="Cold Fusion" custom_browser="" web_path="">
+      <method />
+    </configuration>
+    <configuration default="true" type="CucumberJavaRunConfigurationType" factoryName="Cucumber java">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="myFilePath" />
+      <option name="GLUE" />
+      <option name="myNameFilter" />
+      <option name="myGeneratedName" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="FlashRunConfigurationType" factoryName="Flash App">
+      <option name="BCName" value="" />
+      <option name="IOSSimulatorSdkPath" value="" />
+      <option name="adlOptions" value="" />
+      <option name="airProgramParameters" value="" />
+      <option name="appDescriptorForEmulator" value="Android" />
+      <option name="debugTransport" value="USB" />
+      <option name="debuggerSdkRaw" value="BC SDK" />
+      <option name="emulator" value="NexusOne" />
+      <option name="emulatorAdlOptions" value="" />
+      <option name="fastPackaging" value="true" />
+      <option name="fullScreenHeight" value="0" />
+      <option name="fullScreenWidth" value="0" />
+      <option name="launchUrl" value="false" />
+      <option name="launcherParameters">
+        <LauncherParameters>
+          <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
+          <option name="launcherType" value="OSDefault" />
+          <option name="newPlayerInstance" value="false" />
+          <option name="playerPath" value="FlashPlayerDebugger.exe" />
+        </LauncherParameters>
+      </option>
+      <option name="mobileRunTarget" value="Emulator" />
+      <option name="moduleName" value="" />
+      <option name="overriddenMainClass" value="" />
+      <option name="overriddenOutputFileName" value="" />
+      <option name="overrideMainClass" value="false" />
+      <option name="runTrusted" value="true" />
+      <option name="screenDpi" value="0" />
+      <option name="screenHeight" value="0" />
+      <option name="screenWidth" value="0" />
+      <option name="url" value="http://" />
+      <option name="usbDebugPort" value="7936" />
+      <method />
+    </configuration>
+    <configuration default="true" type="FlexUnitRunConfigurationType" factoryName="FlexUnit" appDescriptorForEmulator="Android" class_name="" emulatorAdlOptions="" method_name="" package_name="" scope="Class">
+      <option name="BCName" value="" />
+      <option name="launcherParameters">
+        <LauncherParameters>
+          <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
+          <option name="launcherType" value="OSDefault" />
+          <option name="newPlayerInstance" value="false" />
+          <option name="playerPath" value="FlashPlayerDebugger.exe" />
+        </LauncherParameters>
+      </option>
+      <option name="moduleName" value="" />
+      <option name="trusted" value="true" />
+      <method />
+    </configuration>
+    <configuration default="true" type="GradleRunConfiguration" factoryName="Gradle">
+      <ExternalSystemSettings>
+        <option name="executionName" />
+        <option name="externalProjectPath" />
+        <option name="externalSystemIdString" value="GRADLE" />
+        <option name="scriptParameters" />
+        <option name="taskDescriptions">
+          <list />
+        </option>
+        <option name="taskNames">
+          <list />
+        </option>
+        <option name="vmOptions" />
+      </ExternalSystemSettings>
+      <method />
+    </configuration>
+    <configuration default="true" type="GrailsRunConfigurationType" factoryName="Grails">
+      <setting name="vmparams" value="" />
+      <setting name="cmdLine" value="run-app" />
+      <setting name="passParentEnv" value="true" />
+      <setting name="launchBrowser" value="true" />
+      <setting name="launchBrowserUrl" value="" />
+      <method />
+    </configuration>
+    <configuration default="true" type="JUnit" factoryName="JUnit">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="TEST_OBJECT" value="class" />
+      <option name="VM_PARAMETERS" value="-ea" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <envs />
+      <patterns />
+      <method />
+    </configuration>
+    <configuration default="true" type="JarApplication" factoryName="JAR Application">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="Java Scratch" factoryName="Java Scratch">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="SCRATCH_FILE_ID" value="0" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor">
+      <config-file value="" />
+      <node-interpreter value="project" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
+      <method />
+    </configuration>
+    <configuration default="true" type="JetRunConfigurationType" factoryName="Kotlin">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="HomeWork0226" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="KotlinStandaloneScriptRunConfigurationType" factoryName="Kotlin script">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="filePath" />
+      <option name="vmParameters" />
+      <option name="alternativeJrePath" />
+      <option name="programParameters" />
+      <option name="passParentEnvs" value="true" />
+      <option name="workingDirectory" />
+      <option name="isAlternativeJrePathEnabled" value="false" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="Remote" factoryName="Remote">
+      <option name="USE_SOCKET_TRANSPORT" value="true" />
+      <option name="SERVER_MODE" value="false" />
+      <option name="SHMEM_ADDRESS" value="javadebug" />
+      <option name="HOST" value="localhost" />
+      <option name="PORT" value="5005" />
+      <method />
+    </configuration>
+    <configuration default="true" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="TestNG" factoryName="TestNG">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="SUITE_NAME" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="GROUP_NAME" />
+      <option name="TEST_OBJECT" value="CLASS" />
+      <option name="VM_PARAMETERS" value="-ea" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
+      <option name="OUTPUT_DIRECTORY" />
+      <option name="ANNOTATION_TYPE" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <option name="USE_DEFAULT_REPORTERS" value="false" />
+      <option name="PROPERTIES_FILE" />
+      <envs />
+      <properties />
+      <listeners />
+      <method />
+    </configuration>
+    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
+      <method />
+    </configuration>
+    <configuration default="true" type="js.build_tools.npm" factoryName="npm">
+      <command value="run" />
+      <scripts />
+      <node-interpreter value="project" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="osgi.bnd.run" factoryName="Run Launcher">
+      <method />
+    </configuration>
+    <configuration default="true" type="osgi.bnd.run" factoryName="Test Launcher (JUnit)">
+      <method />
+    </configuration>
+  </component>
+  <component name="ShelveChangesManager" show_recycled="false">
+    <option name="remove_strategy" value="false" />
+  </component>
+  <component name="SvnConfiguration">
+    <configuration />
+  </component>
+  <component name="TaskManager">
+    <task active="true" id="Default" summary="Default task">
+      <changelist id="d5122146-7cd8-40d4-a36b-01cd6481aebe" name="Default" comment="" />
+      <created>1487584408499</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1487584408499</updated>
+      <workItem from="1487584460872" duration="2426000" />
+      <workItem from="1487686386995" duration="5332000" />
+      <workItem from="1487734916342" duration="1918000" />
+      <workItem from="1487761233044" duration="1016000" />
+      <workItem from="1487774260616" duration="1273000" />
+      <workItem from="1487808113056" duration="745000" />
+      <workItem from="1487828990873" duration="1436000" />
+      <workItem from="1487852559901" duration="6865000" />
+      <workItem from="1487900639002" duration="11180000" />
+    </task>
+    <servers />
+  </component>
+  <component name="TimeTrackingManager">
+    <option name="totallyTimeSpent" value="32191000" />
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="-8" y="-8" width="1382" height="744" extended-state="7" />
+    <editor active="true" />
+    <layout>
+      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+      <window_info id="Nl-Palette" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
+      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32884097" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2655068" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+    </layout>
+  </component>
+  <component name="TypeScriptGeneratedFilesManager">
+    <option name="processedProjectFiles" value="true" />
+  </component>
+  <component name="VcsContentAnnotationSettings">
+    <option name="myLimit" value="2678400000" />
+  </component>
+  <component name="XDebuggerManager">
+    <breakpoint-manager>
+      <option name="time" value="5" />
+    </breakpoint-manager>
+    <watches-manager />
+  </component>
+  <component name="editorHistoryManager">
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="132">
+          <caret line="6" column="43" lean-forward="false" selection-start-line="6" selection-start-column="43" selection-end-line="6" selection-end-column="43" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1386">
+          <caret line="63" column="56" lean-forward="false" selection-start-line="63" selection-start-column="56" selection-end-line="63" selection-end-column="56" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="method#add#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#add#1;class#ArrayList#0" expanded="false" />
+            <element signature="method#get#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#remove#0;class#ArrayList#0" expanded="false" />
+            <element signature="class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#next#0;class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#ensureCapacity#0;class#ArrayList#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/LinkedList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding>
+            <element signature="method#LinkedList#0;class#LinkedList#0" expanded="false" />
+            <element signature="method#add#1;class#LinkedList#0" expanded="false" />
+            <element signature="method#get#0;class#LinkedList#0" expanded="false" />
+            <element signature="method#remove#0;class#LinkedList#0" expanded="false" />
+            <element signature="method#addFirst#0;class#LinkedList#0" expanded="false" />
+            <element signature="method#addLast#0;class#LinkedList#0" expanded="false" />
+            <element signature="method#removeFirst#0;class#LinkedList#0" expanded="false" />
+            <element signature="method#removeLast#0;class#LinkedList#0" expanded="false" />
+            <element signature="e#2045#2046#0" expanded="true" />
+            <element signature="e#2063#2064#0" expanded="true" />
+            <element signature="class#LinkedListIterator#0;class#LinkedList#0" expanded="false" />
+            <element signature="method#next#0;class#LinkedListIterator#0;class#LinkedList#0" expanded="false" />
+            <element signature="class#Node#0;class#LinkedList#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="44">
+          <caret line="2" column="17" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="66">
+          <caret line="3" column="16" lean-forward="false" selection-start-line="3" selection-start-column="16" selection-end-line="3" selection-end-column="16" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="method#add#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#add#1;class#ArrayList#0" expanded="false" />
+            <element signature="method#get#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#remove#0;class#ArrayList#0" expanded="false" />
+            <element signature="class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#next#0;class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#ensureCapacity#0;class#ArrayList#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="44">
+          <caret line="2" column="17" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="66">
+          <caret line="3" column="16" lean-forward="false" selection-start-line="3" selection-start-column="16" selection-end-line="3" selection-end-column="16" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="method#add#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#add#1;class#ArrayList#0" expanded="false" />
+            <element signature="method#get#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#remove#0;class#ArrayList#0" expanded="false" />
+            <element signature="class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#next#0;class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#ensureCapacity#0;class#ArrayList#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="44">
+          <caret line="2" column="17" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="66">
+          <caret line="3" column="16" lean-forward="false" selection-start-line="3" selection-start-column="16" selection-end-line="3" selection-end-column="16" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="method#add#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#add#1;class#ArrayList#0" expanded="false" />
+            <element signature="method#get#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#remove#0;class#ArrayList#0" expanded="false" />
+            <element signature="class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#next#0;class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#ensureCapacity#0;class#ArrayList#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="44">
+          <caret line="2" column="17" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="66">
+          <caret line="3" column="16" lean-forward="false" selection-start-line="3" selection-start-column="16" selection-end-line="3" selection-end-column="16" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="method#add#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#add#1;class#ArrayList#0" expanded="false" />
+            <element signature="method#get#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#remove#0;class#ArrayList#0" expanded="false" />
+            <element signature="class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#next#0;class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#ensureCapacity#0;class#ArrayList#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="44">
+          <caret line="2" column="17" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="66">
+          <caret line="3" column="16" lean-forward="false" selection-start-line="3" selection-start-column="16" selection-end-line="3" selection-end-column="16" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="method#add#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#add#1;class#ArrayList#0" expanded="false" />
+            <element signature="method#get#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#remove#0;class#ArrayList#0" expanded="false" />
+            <element signature="class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#next#0;class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#ensureCapacity#0;class#ArrayList#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="44">
+          <caret line="2" column="17" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="66">
+          <caret line="3" column="16" lean-forward="false" selection-start-line="3" selection-start-column="16" selection-end-line="3" selection-end-column="16" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="method#add#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#add#1;class#ArrayList#0" expanded="false" />
+            <element signature="method#get#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#remove#0;class#ArrayList#0" expanded="false" />
+            <element signature="class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#next#0;class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#ensureCapacity#0;class#ArrayList#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="44">
+          <caret line="2" column="17" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="44">
+          <caret line="2" column="17" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="method#add#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#add#1;class#ArrayList#0" expanded="false" />
+            <element signature="method#get#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#remove#0;class#ArrayList#0" expanded="false" />
+            <element signature="class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#next#0;class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#ensureCapacity#0;class#ArrayList#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="44">
+          <caret line="2" column="17" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="110">
+          <caret line="5" column="33" lean-forward="false" selection-start-line="5" selection-start-column="33" selection-end-line="5" selection-end-column="33" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Stack.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="264">
+          <caret line="26" column="52" lean-forward="true" selection-start-line="26" selection-start-column="52" selection-end-line="26" selection-end-column="52" />
+          <folding>
+            <element signature="method#push#0;class#Stack#0" expanded="false" />
+            <element signature="method#pop#0;class#Stack#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="242">
+          <caret line="36" column="0" lean-forward="false" selection-start-line="36" selection-start-column="0" selection-end-line="36" selection-end-column="0" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="method#add#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#add#1;class#ArrayList#0" expanded="false" />
+            <element signature="method#get#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#remove#0;class#ArrayList#0" expanded="false" />
+            <element signature="class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#next#0;class#ArrayListIterator#0;class#ArrayList#0" expanded="false" />
+            <element signature="method#ensureCapacity#0;class#ArrayList#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/LinkedList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="330">
+          <caret line="118" column="20" lean-forward="false" selection-start-line="118" selection-start-column="20" selection-end-line="118" selection-end-column="20" />
+          <folding>
+            <element signature="method#LinkedList#0;class#LinkedList#0" expanded="false" />
+            <element signature="method#add#1;class#LinkedList#0" expanded="false" />
+            <element signature="method#get#0;class#LinkedList#0" expanded="false" />
+            <element signature="method#remove#0;class#LinkedList#0" expanded="false" />
+            <element signature="method#addFirst#0;class#LinkedList#0" expanded="false" />
+            <element signature="method#addLast#0;class#LinkedList#0" expanded="false" />
+            <element signature="method#removeFirst#0;class#LinkedList#0" expanded="false" />
+            <element signature="method#removeLast#0;class#LinkedList#0" expanded="false" />
+            <element signature="e#2045#2046#0" expanded="true" />
+            <element signature="e#2063#2064#0" expanded="true" />
+            <element signature="class#LinkedListIterator#0;class#LinkedList#0" expanded="false" />
+            <element signature="method#next#0;class#LinkedListIterator#0;class#LinkedList#0" expanded="false" />
+            <element signature="class#Node#0;class#LinkedList#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Queue.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="418">
+          <caret line="19" column="32" lean-forward="false" selection-start-line="19" selection-start-column="32" selection-end-line="19" selection-end-column="32" />
+          <folding>
+            <element signature="e#131#132#0" expanded="true" />
+            <element signature="e#159#160#0" expanded="true" />
+            <element signature="e#290#291#0" expanded="true" />
+            <element signature="e#327#328#0" expanded="true" />
+            <element signature="e#349#350#0" expanded="true" />
+            <element signature="e#380#381#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="44">
+          <caret line="2" column="17" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/coding/basic/BinaryTreeNode.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="44">
+          <caret line="2" column="13" lean-forward="true" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="27" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+  </component>
+</project>
\ No newline at end of file
diff --git a/group05/183127807/HomeWork0226/HomeWork0226.iml b/group05/183127807/HomeWork0226/HomeWork0226.iml
new file mode 100644
index 0000000000..c90834f2d6
--- /dev/null
+++ b/group05/183127807/HomeWork0226/HomeWork0226.iml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/group05/183127807/HomeWork0226/src/com/coding/basic/ArrayList.java b/group05/183127807/HomeWork0226/src/com/coding/basic/ArrayList.java
new file mode 100644
index 0000000000..d8609f5ca3
--- /dev/null
+++ b/group05/183127807/HomeWork0226/src/com/coding/basic/ArrayList.java
@@ -0,0 +1,85 @@
+package com.coding.basic;
+
+import java.util.Arrays;
+import java.util.NoSuchElementException;
+
+public class ArrayList implements List {
+
+	private static final int DEFAULT_CAPACITY = 100;
+
+	private int size = 0;
+	
+	private Object[] elementData = new Object[DEFAULT_CAPACITY];
+	
+	public void add(Object o){
+		ensureCapacity(size+1);
+		elementData[size] = o;
+		size++;
+	}
+	public void add(int index, Object o){
+		if (index > size || index < 0) {
+			throw new ArrayIndexOutOfBoundsException();
+		}
+		ensureCapacity(size+1);
+		for (int i = size;i>index;i--) {
+			elementData[i] = elementData[i - 1];
+		}
+		elementData[index] = o;
+		size++;
+	}
+	
+	public Object get(int index){
+		if (index > size || index < 0) {
+			throw new ArrayIndexOutOfBoundsException();
+		}
+		return elementData[index];
+	}
+
+	
+	public Object remove(int index){
+		 Object[] removeData = (Object[]) elementData[index];
+		 for (int i =index;i<size()-1;i++) {
+			 elementData[i] = elementData[i + 1];
+		 }
+		 elementData[size] = null;
+		 size--;
+
+		return removeData;
+	}
+	
+	public int size(){
+		return size;
+	}
+	
+	public Iterator iterator(){
+
+		return new ArrayListIterator();
+	}
+
+	private class ArrayListIterator implements Iterator {
+		private int current = 0;
+		@Override
+		public boolean hasNext() {
+			return current<size();
+		}
+
+		@Override
+		public Object next() {
+			if (!hasNext()) {
+				throw new NoSuchElementException();
+			}
+			return elementData[current++];
+		}
+	}
+
+
+	public void ensureCapacity(int minCapacity) {
+		if (minCapacity < elementData.length) {
+			return;
+		} else if (minCapacity > elementData.length) {
+
+			elementData = Arrays.copyOf(elementData, minCapacity + DEFAULT_CAPACITY);
+		}
+	}
+	
+}
diff --git a/group05/183127807/HomeWork0226/src/com/coding/basic/BinaryTreeNode.java b/group05/183127807/HomeWork0226/src/com/coding/basic/BinaryTreeNode.java
new file mode 100644
index 0000000000..d7ac820192
--- /dev/null
+++ b/group05/183127807/HomeWork0226/src/com/coding/basic/BinaryTreeNode.java
@@ -0,0 +1,32 @@
+package com.coding.basic;
+
+public class BinaryTreeNode {
+	
+	private Object data;
+	private BinaryTreeNode left;
+	private BinaryTreeNode right;
+	
+	public Object getData() {
+		return data;
+	}
+	public void setData(Object data) {
+		this.data = data;
+	}
+	public BinaryTreeNode getLeft() {
+		return left;
+	}
+	public void setLeft(BinaryTreeNode left) {
+		this.left = left;
+	}
+	public BinaryTreeNode getRight() {
+		return right;
+	}
+	public void setRight(BinaryTreeNode right) {
+		this.right = right;
+	}
+	
+	public BinaryTreeNode insert(Object o){
+		return  null;
+	}
+	
+}
diff --git a/group05/183127807/HomeWork0226/src/com/coding/basic/Iterator.java b/group05/183127807/HomeWork0226/src/com/coding/basic/Iterator.java
new file mode 100644
index 0000000000..06ef6311b2
--- /dev/null
+++ b/group05/183127807/HomeWork0226/src/com/coding/basic/Iterator.java
@@ -0,0 +1,7 @@
+package com.coding.basic;
+
+public interface Iterator {
+	public boolean hasNext();
+	public Object next();
+
+}
diff --git a/group05/183127807/HomeWork0226/src/com/coding/basic/LinkedList.java b/group05/183127807/HomeWork0226/src/com/coding/basic/LinkedList.java
new file mode 100644
index 0000000000..a1bbcad9db
--- /dev/null
+++ b/group05/183127807/HomeWork0226/src/com/coding/basic/LinkedList.java
@@ -0,0 +1,142 @@
+package com.coding.basic;
+
+public class LinkedList implements List {
+	
+	private Node head;
+
+	private int size ;
+
+	private Node current = head;
+	public LinkedList() {
+		head = null;
+		size = 0;
+	}
+	
+	public void add(Object o){
+		Node newNode = new Node();
+		newNode.data = o;
+		if (current.next == null)
+		{
+			current.next = newNode;
+		}
+
+		while (current.next != null){
+			current = current.next;
+		}
+		current.next = newNode;
+		size++;
+
+	}
+	public void add(int index , Object o){
+
+		Node newNode = new Node();
+		newNode.data = o;
+		 if (index < 0 || index > size) {
+			throw new IndexOutOfBoundsException();
+		}
+		for (int i = 0; i < index - 2; i++) {
+
+			current = current.next;
+		}
+
+		newNode.next = current.next;
+		current.next = newNode;
+		size++;
+	}
+	public Object get(int index){
+
+
+		if (index < 0 || index > size) {
+			throw new IndexOutOfBoundsException();
+		} else if (index == 0) {
+			return head;
+		}
+		for (int i = 0;i<index - 1; i++) {
+			current = current.next;
+		}
+
+		return current;
+	}
+
+	public Object remove(int index){
+		for (int i = 1; i <= index; i++) {
+
+			if (i == index - 1) {
+				current.next = current.next.next;
+				size--;
+			} else {
+				current = current.next;
+			}
+
+		}
+		return null;
+	}
+	
+	public int size(){
+		return size;
+	}
+	
+	public void addFirst(Object o){
+		Node newHead = new Node();
+		newHead.data = o;
+		newHead.next = head;
+		head = newHead;
+		size++;
+	}
+	public void addLast(Object o){
+		Node newNode = new Node();
+		newNode.data = o;
+		while (current.next != null){
+			current = current.next;
+		}
+		current.next = newNode;
+		size++;
+	}
+	public Object removeFirst(){
+		Node removeHead = head;
+		head.next = head.next.next;
+		size--;
+		return removeHead;
+	}
+	public Object removeLast(){
+		Node theNext = current.next;
+        Node oldLast;
+		while(theNext.next != null) {
+			current = theNext;
+			theNext = theNext.next;
+		}
+		oldLast=current.next;
+		current.next = theNext.next;
+
+		size--;
+		return oldLast;
+	}
+	public Iterator iterator(){
+		return new LinkedListIterator();
+	}
+
+	public Object head() {
+		return head;
+	}
+	private class LinkedListIterator implements Iterator {
+		@Override
+		public boolean hasNext() {
+			return current.next!=null;
+		}
+
+		@Override
+		public Object next() {
+			Node data = (Node) current.data;
+			current.next = current.next.next;
+			return data;
+		}
+	}
+
+	
+	private static  class Node{
+		Object data;
+
+		Node next;
+		
+	}
+}
diff --git a/group05/183127807/HomeWork0226/src/com/coding/basic/List.java b/group05/183127807/HomeWork0226/src/com/coding/basic/List.java
new file mode 100644
index 0000000000..10d13b5832
--- /dev/null
+++ b/group05/183127807/HomeWork0226/src/com/coding/basic/List.java
@@ -0,0 +1,9 @@
+package com.coding.basic;
+
+public interface List {
+	public void add(Object o);
+	public void add(int index, Object o);
+	public Object get(int index);
+	public Object remove(int index);
+	public int size();
+}
diff --git a/group05/183127807/HomeWork0226/src/com/coding/basic/Queue.java b/group05/183127807/HomeWork0226/src/com/coding/basic/Queue.java
new file mode 100644
index 0000000000..1d005c8061
--- /dev/null
+++ b/group05/183127807/HomeWork0226/src/com/coding/basic/Queue.java
@@ -0,0 +1,22 @@
+package com.coding.basic;
+
+public class Queue {
+	private LinkedList linkedList = new LinkedList();
+	
+	public void enQueue(Object o){
+		linkedList.addLast(o);
+	}
+	
+	public Object deQueue(){
+		Object removeQueue = linkedList.removeFirst();
+		return removeQueue;
+	}
+	
+	public boolean isEmpty(){
+		return linkedList.head()==null;
+	}
+	
+	public int size(){
+		return linkedList.size();
+	}
+}
diff --git a/group05/183127807/HomeWork0226/src/com/coding/basic/Stack.java b/group05/183127807/HomeWork0226/src/com/coding/basic/Stack.java
new file mode 100644
index 0000000000..11d71ee8a6
--- /dev/null
+++ b/group05/183127807/HomeWork0226/src/com/coding/basic/Stack.java
@@ -0,0 +1,35 @@
+package com.coding.basic;
+
+import java.util.EmptyStackException;
+
+public class Stack {
+	private ArrayList elementData = new ArrayList();
+	int size = elementData.size();
+
+	public void push(Object o){
+		elementData.add(o);
+		size++;
+	}
+
+	public Object pop(){
+		if(this.isEmpty()==true)
+		{
+			throw new EmptyStackException();
+		}
+		ArrayList popData = (ArrayList) elementData.remove(elementData.size()-1);
+		size--;
+
+		return popData;
+
+	}
+
+	public Object peek(){
+		return elementData.get(elementData.size()-1);
+	}
+	public boolean isEmpty(){
+		return elementData.size()==0;
+	}
+	public int size(){
+		return size;
+	}
+}

From 603121f900910219ad5d5391b15b89e8a0ede807 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=B2=88=E9=98=B3-=E8=93=9DK?= <399258474@qq.com>
Date: Sat, 25 Feb 2017 17:06:40 +0800
Subject: [PATCH 03/31] 2/19-2/16 homework

---
 group05/399258474/.classpath                  |   7 ++
 group05/399258474/.gitignore                  |   1 +
 group05/399258474/.project                    |  17 +++
 .../.settings/org.eclipse.jdt.core.prefs      |  11 ++
 .../src/com/coding/basic/ArrayList.java       |  71 ++++++++++++
 .../src/com/coding/basic/BinaryTreeNode.java  |  32 ++++++
 .../src/com/coding/basic/Iterator.java        |   7 ++
 .../src/com/coding/basic/LinkedList.java      | 104 ++++++++++++++++++
 .../399258474/src/com/coding/basic/List.java  |   9 ++
 .../399258474/src/com/coding/basic/Queue.java |  35 ++++++
 .../399258474/src/com/coding/basic/Stack.java |  39 +++++++
 group05/399258474/src/test/BasicTest.java     |  78 +++++++++++++
 12 files changed, 411 insertions(+)
 create mode 100644 group05/399258474/.classpath
 create mode 100644 group05/399258474/.gitignore
 create mode 100644 group05/399258474/.project
 create mode 100644 group05/399258474/.settings/org.eclipse.jdt.core.prefs
 create mode 100644 group05/399258474/src/com/coding/basic/ArrayList.java
 create mode 100644 group05/399258474/src/com/coding/basic/BinaryTreeNode.java
 create mode 100644 group05/399258474/src/com/coding/basic/Iterator.java
 create mode 100644 group05/399258474/src/com/coding/basic/LinkedList.java
 create mode 100644 group05/399258474/src/com/coding/basic/List.java
 create mode 100644 group05/399258474/src/com/coding/basic/Queue.java
 create mode 100644 group05/399258474/src/com/coding/basic/Stack.java
 create mode 100644 group05/399258474/src/test/BasicTest.java

diff --git a/group05/399258474/.classpath b/group05/399258474/.classpath
new file mode 100644
index 0000000000..b387714202
--- /dev/null
+++ b/group05/399258474/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/group05/399258474/.gitignore b/group05/399258474/.gitignore
new file mode 100644
index 0000000000..3e2fcc7171
--- /dev/null
+++ b/group05/399258474/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/group05/399258474/.project b/group05/399258474/.project
new file mode 100644
index 0000000000..2858b5b710
--- /dev/null
+++ b/group05/399258474/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>2017Learning</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/group05/399258474/.settings/org.eclipse.jdt.core.prefs b/group05/399258474/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..bb35fa0a87
--- /dev/null
+++ b/group05/399258474/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/group05/399258474/src/com/coding/basic/ArrayList.java b/group05/399258474/src/com/coding/basic/ArrayList.java
new file mode 100644
index 0000000000..5030b8d001
--- /dev/null
+++ b/group05/399258474/src/com/coding/basic/ArrayList.java
@@ -0,0 +1,71 @@
+package com.coding.basic;
+
+public class ArrayList implements List {
+	
+	private int size = 0;
+	
+	private Object[] elementData = new Object[2];
+	
+	public void add(Object o){
+		int len = elementData.length;
+		if(size >= len){
+			Object[] new_elmentData = new Object[len*2];
+			System.arraycopy(elementData, 0, new_elmentData, 0, size);
+			elementData = new_elmentData;
+		}
+		elementData[size] = o;
+		size ++;
+	}
+	public void add(int index, Object o){
+		if(index >= size){
+			throw new RuntimeException("下标越界");
+		}
+		Object[] new_elementData = new Object[size+1];
+		System.arraycopy(elementData, 0, new_elementData, 0, index);
+		System.arraycopy(elementData, index, new_elementData, index+1, size-index);
+		new_elementData[index] = o;
+		elementData = new_elementData;
+		size++;
+	}
+	
+	public Object get(int index){
+		if(index >= size){
+			throw new RuntimeException("下标越界");
+		}
+		return elementData[index];
+	}
+	
+	public Object remove(int index){
+		if(index >= size){
+			throw new RuntimeException("下标越界");
+		}
+		Object oldElement = elementData[index];
+		if((index+1) != size){
+			System.arraycopy(elementData, index+1, elementData, index, size-index-1);
+		}
+		elementData[size-1] = null;
+		size --;
+		return oldElement;
+	}
+	
+	public int size(){
+		return size;
+	}
+	
+	public Iterator iterator(){
+		return null;
+	}
+	
+	@Override
+	public String toString() {
+		String s = "{";
+		for (int i = 0; i < size; i++) {
+			if(i == (size -1)){
+				s += elementData[i] + "}";
+			}else{
+				s += elementData[i]+",";
+			}
+		}
+		return s;
+	}
+}
diff --git a/group05/399258474/src/com/coding/basic/BinaryTreeNode.java b/group05/399258474/src/com/coding/basic/BinaryTreeNode.java
new file mode 100644
index 0000000000..266eff3d56
--- /dev/null
+++ b/group05/399258474/src/com/coding/basic/BinaryTreeNode.java
@@ -0,0 +1,32 @@
+package com.coding.basic;
+
+public class BinaryTreeNode {
+	
+	private Object data;
+	private BinaryTreeNode left;
+	private BinaryTreeNode right;
+	
+	public Object getData() {
+		return data;
+	}
+	public void setData(Object data) {
+		this.data = data;
+	}
+	public BinaryTreeNode getLeft() {
+		return left;
+	}
+	public void setLeft(BinaryTreeNode left) {
+		this.left = left;
+	}
+	public BinaryTreeNode getRight() {
+		return right;
+	}
+	public void setRight(BinaryTreeNode right) {
+		this.right = right;
+	}
+	
+	public BinaryTreeNode insert(Object o){
+		return  null;
+	}
+	
+}
diff --git a/group05/399258474/src/com/coding/basic/Iterator.java b/group05/399258474/src/com/coding/basic/Iterator.java
new file mode 100644
index 0000000000..dbe8b9afb2
--- /dev/null
+++ b/group05/399258474/src/com/coding/basic/Iterator.java
@@ -0,0 +1,7 @@
+package com.coding.basic;
+
+public interface Iterator {
+	public boolean hasNext();
+	public Object next();
+
+}
diff --git a/group05/399258474/src/com/coding/basic/LinkedList.java b/group05/399258474/src/com/coding/basic/LinkedList.java
new file mode 100644
index 0000000000..ff69d8d341
--- /dev/null
+++ b/group05/399258474/src/com/coding/basic/LinkedList.java
@@ -0,0 +1,104 @@
+package com.coding.basic;
+
+public class LinkedList implements List {
+	
+	private Node head;
+	private int size;
+	
+	public LinkedList(){
+		head = new Node(new Object(),null,null);
+	}
+	
+	public void add(Object o){
+		Node last = head;
+		for (int i = 0; i < size; i++) {
+			last = last.next;
+		}
+		Node newNode = new Node(o,null,last);
+		last.next = newNode;
+		size++;
+	}
+	public void add(int index , Object o){
+		Node oldNode = getNode(index);
+		Node newNode = new Node(o, oldNode, oldNode.prev);
+		oldNode.prev.next = newNode;
+		oldNode.prev = newNode;
+		size ++;
+	}
+	public Object get(int index){
+		Node node = getNode(index);
+		return node.data;
+	}
+	
+	private Node getNode(int index){
+		Node n = head.next;
+		for (int i = 0; i < index; i++) {
+			n = n.next;
+		}
+		return n;
+	}
+	
+	public Object remove(int index){
+		Node node = getNode(index);
+		Object o =node.data;
+		Node prevNode = node.prev;
+		Node nextNode = node.next;
+		prevNode.next = nextNode;
+		nextNode.prev = prevNode;
+		node.next = node.prev =null;
+		node.data = null;
+		size --;
+		return o;
+	}
+	
+	public int size(){
+		return size;
+	}
+	
+	public void addFirst(Object o){
+		add(0,o);
+	}
+	public void addLast(Object o){
+		add(o);
+	}
+	public Object removeFirst(){
+		Object o = remove(0);
+		return o;
+	}
+	public Object removeLast(){
+		Object o = remove(size);
+		return o;
+	}
+	public Iterator iterator(){
+		return null;
+	}
+	
+	
+	private static class Node{
+		Object data;
+		Node next;
+		Node prev;
+		
+		public Node(Object o,Node next,Node prev){
+			this.data = o;
+			this.next = next;
+			this.prev = prev;
+		}
+	}
+	
+	@Override
+	public String toString() {
+		String s = "{";
+		Node n = head;
+		for (int i = 0; i < size; i++) {
+			n  = n.next;
+			if(i == (size -1)){
+				s += n.data;
+			}else{
+				s += n.data + ",";
+			}
+		}
+		s += "}";
+		return s;
+	}
+}
diff --git a/group05/399258474/src/com/coding/basic/List.java b/group05/399258474/src/com/coding/basic/List.java
new file mode 100644
index 0000000000..396b1f6416
--- /dev/null
+++ b/group05/399258474/src/com/coding/basic/List.java
@@ -0,0 +1,9 @@
+package com.coding.basic;
+
+public interface List {
+	public void add(Object o);
+	public void add(int index, Object o);
+	public Object get(int index);
+	public Object remove(int index);
+	public int size();
+}
diff --git a/group05/399258474/src/com/coding/basic/Queue.java b/group05/399258474/src/com/coding/basic/Queue.java
new file mode 100644
index 0000000000..a0bb03e6f2
--- /dev/null
+++ b/group05/399258474/src/com/coding/basic/Queue.java
@@ -0,0 +1,35 @@
+package com.coding.basic;
+
+public class Queue {
+	private LinkedList list = new LinkedList();
+	
+	public void enQueue(Object o){	
+		list.add(o);
+	}
+	
+	public Object deQueue(){
+		if(isEmpty()){
+			throw new RuntimeException("已为空");
+		}
+		Object o = list.get(0);
+		list.remove(0);
+		return o;
+	}
+	
+	public boolean isEmpty(){
+		if(size() == 0){
+			return true;
+		}else{
+			return false;
+		}
+	}
+	
+	public int size(){
+		return list.size();
+	}
+	
+	@Override
+	public String toString() {
+		return list.toString();
+	}
+}
diff --git a/group05/399258474/src/com/coding/basic/Stack.java b/group05/399258474/src/com/coding/basic/Stack.java
new file mode 100644
index 0000000000..4d137996b6
--- /dev/null
+++ b/group05/399258474/src/com/coding/basic/Stack.java
@@ -0,0 +1,39 @@
+package com.coding.basic;
+
+public class Stack {
+	private ArrayList elementData = new ArrayList();
+	
+	public void push(Object o){	
+		elementData.add(o);
+	}
+	
+	public Object pop(){
+		if(isEmpty()){
+			throw new RuntimeException("已为空");
+		}
+		Object o = elementData.get(elementData.size()-1);
+		elementData.remove(elementData.size()-1);
+		return o;
+	}
+	
+	public Object peek(){
+		Object o = elementData.get(elementData.size()-1);
+		return o;
+	}
+	public boolean isEmpty(){
+		int size = elementData.size();
+		if(size == 0){
+			return true;
+		}else{
+			return false;
+		}
+	}
+	public int size(){
+		return elementData.size();
+	}
+	
+	@Override
+	public String toString() {
+		return elementData.toString();
+	}
+}
diff --git a/group05/399258474/src/test/BasicTest.java b/group05/399258474/src/test/BasicTest.java
new file mode 100644
index 0000000000..7339881525
--- /dev/null
+++ b/group05/399258474/src/test/BasicTest.java
@@ -0,0 +1,78 @@
+package test;
+
+import org.junit.Test;
+
+import com.coding.basic.ArrayList;
+import com.coding.basic.LinkedList;
+import com.coding.basic.Queue;
+import com.coding.basic.Stack;
+
+public class BasicTest {
+
+	@Test
+	public void ArrayListTest() {
+		ArrayList list = new ArrayList();
+		list.add(1);
+		list.add(2);
+		list.add(3);
+		System.out.println(list);
+		list.add(1, 99);
+		System.out.println(list);
+		list.remove(1);
+		System.out.println(list);
+	}
+	
+	@Test
+	public void LinkedListTest(){
+		LinkedList l = new LinkedList();
+		l.add(1);
+		l.add(2);
+		l.add(3);
+		System.out.println(l);
+		l.add(1, 99);
+		System.out.println(l);
+		l.remove(1);
+		System.out.println(l);
+		System.out.println(l.size());
+	}
+	
+	@Test
+	public void StackTest(){
+		Stack s = new Stack();
+		s.push(1);
+		s.push(2);
+		System.out.println(s);
+		if(s.isEmpty()){
+			System.out.println("空");
+		}else{
+			System.out.println("非空");
+			
+		}
+		System.out.println(s.peek());
+		s.pop();
+		System.out.println(s);
+		s.pop();
+		System.out.println(s);
+		if(s.isEmpty()){
+			System.out.println("空");
+		}else{
+			System.out.println("非空");
+			
+		}
+		s.pop();
+	}
+	
+	@Test
+	public void QueueTest(){
+		Queue q = new Queue();
+		q.enQueue(1);
+		q.enQueue(2);
+		System.out.println(q);
+		q.deQueue();
+		System.out.println(q);
+		q.enQueue(3);
+		System.out.println(q);
+		System.out.println(q.size());
+	}
+
+}

From 5d323074adc75b9462e73472796ec3a1da85fb2a Mon Sep 17 00:00:00 2001
From: wangzhengliang <1026626960@qq.com>
Date: Sat, 25 Feb 2017 22:25:57 +0800
Subject: [PATCH 04/31] one

---
 group05/1026626960/.classpath                 |  6 +++
 group05/1026626960/.gitignore                 |  1 +
 group05/1026626960/.project                   | 17 +++++++++
 .../1026626960/src/cn/study1/myIterator.java  |  5 +++
 group05/1026626960/src/cn/study1/myQueue.java | 38 +++++++++++++++++++
 group05/1026626960/src/cn/study1/myStack.java | 29 ++++++++++++++
 6 files changed, 96 insertions(+)
 create mode 100644 group05/1026626960/.classpath
 create mode 100644 group05/1026626960/.gitignore
 create mode 100644 group05/1026626960/.project
 create mode 100644 group05/1026626960/src/cn/study1/myIterator.java
 create mode 100644 group05/1026626960/src/cn/study1/myQueue.java
 create mode 100644 group05/1026626960/src/cn/study1/myStack.java

diff --git a/group05/1026626960/.classpath b/group05/1026626960/.classpath
new file mode 100644
index 0000000000..fb5011632c
--- /dev/null
+++ b/group05/1026626960/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/group05/1026626960/.gitignore b/group05/1026626960/.gitignore
new file mode 100644
index 0000000000..ae3c172604
--- /dev/null
+++ b/group05/1026626960/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/group05/1026626960/.project b/group05/1026626960/.project
new file mode 100644
index 0000000000..a8522c9339
--- /dev/null
+++ b/group05/1026626960/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>1026626960Coding</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/group05/1026626960/src/cn/study1/myIterator.java b/group05/1026626960/src/cn/study1/myIterator.java
new file mode 100644
index 0000000000..a5e5528559
--- /dev/null
+++ b/group05/1026626960/src/cn/study1/myIterator.java
@@ -0,0 +1,5 @@
+package cn.study1;
+
+public class myIterator {
+	//
+}
diff --git a/group05/1026626960/src/cn/study1/myQueue.java b/group05/1026626960/src/cn/study1/myQueue.java
new file mode 100644
index 0000000000..cfb5e061d7
--- /dev/null
+++ b/group05/1026626960/src/cn/study1/myQueue.java
@@ -0,0 +1,38 @@
+package cn.study1;
+
+public class myQueue<T> {
+	private class Node{
+		T t;
+		Node next;
+	}
+	private Node first;
+	private Node last;
+	private int N;
+	public boolean isEmpty(){
+		return N==0;
+	}
+	public int size(){
+		return N;
+	}
+	public void enqueue(T t){
+		Node oldlast = last;
+		last = new Node();
+		last.t = t;
+		last.next = null;
+		if(isEmpty()){
+			first = last;
+		}else{
+			oldlast.next = last;
+		}
+		N++;
+	}
+	public T dequeue(){
+		T t = first.t;
+		first = first.next;
+		if(isEmpty()){
+			last = null;
+		}
+		N--;
+		return t;
+	}
+}
diff --git a/group05/1026626960/src/cn/study1/myStack.java b/group05/1026626960/src/cn/study1/myStack.java
new file mode 100644
index 0000000000..8364401c45
--- /dev/null
+++ b/group05/1026626960/src/cn/study1/myStack.java
@@ -0,0 +1,29 @@
+package cn.study1;
+
+public class myStack<T> {
+	private class Node{
+		T t;
+		Node next;
+	}
+	private Node first;
+	private int N;
+	public boolean isEmpty(){
+		return N==0;
+	}
+	public int size(){
+		return N;
+	}
+	public void push(T t){
+		Node oldfirst = first;
+		first = new Node();
+		first.t = t;
+		first.next = oldfirst;
+		N++;
+	}
+	public T pop(){
+		T t = first.t;
+		first = first.next;
+		N--;
+		return t;
+	}
+}

From 1dbd5aee827accb108dc6fbe2d482a1da19b2875 Mon Sep 17 00:00:00 2001
From: Leon1900 <bai1006401045@163.com>
Date: Sat, 25 Feb 2017 23:08:40 +0800
Subject: [PATCH 05/31] Task01

@Leon1900
---
 .../515505513/RemoteSystemsTempFiles/.project | 12 +++
 group05/515505513/Task01/.classpath           |  6 ++
 group05/515505513/Task01/.gitignore           |  1 +
 group05/515505513/Task01/.project             | 17 ++++
 .../.settings/org.eclipse.jdt.core.prefs      | 11 +++
 .../src/com/coding/basic/ArrayList.java       | 78 +++++++++++++++++++
 .../src/com/coding/basic/BinaryTreeNode.java  | 32 ++++++++
 .../Task01/src/com/coding/basic/Iterator.java |  7 ++
 .../src/com/coding/basic/LinkedList.java      | 48 ++++++++++++
 .../Task01/src/com/coding/basic/List.java     |  9 +++
 .../Task01/src/com/coding/basic/Queue.java    | 49 ++++++++++++
 .../Task01/src/com/coding/basic/Stack.java    | 49 ++++++++++++
 .../src/com/coding/basic/TestExample.java     | 27 +++++++
 13 files changed, 346 insertions(+)
 create mode 100644 group05/515505513/RemoteSystemsTempFiles/.project
 create mode 100644 group05/515505513/Task01/.classpath
 create mode 100644 group05/515505513/Task01/.gitignore
 create mode 100644 group05/515505513/Task01/.project
 create mode 100644 group05/515505513/Task01/.settings/org.eclipse.jdt.core.prefs
 create mode 100644 group05/515505513/Task01/src/com/coding/basic/ArrayList.java
 create mode 100644 group05/515505513/Task01/src/com/coding/basic/BinaryTreeNode.java
 create mode 100644 group05/515505513/Task01/src/com/coding/basic/Iterator.java
 create mode 100644 group05/515505513/Task01/src/com/coding/basic/LinkedList.java
 create mode 100644 group05/515505513/Task01/src/com/coding/basic/List.java
 create mode 100644 group05/515505513/Task01/src/com/coding/basic/Queue.java
 create mode 100644 group05/515505513/Task01/src/com/coding/basic/Stack.java
 create mode 100644 group05/515505513/Task01/src/com/coding/basic/TestExample.java

diff --git a/group05/515505513/RemoteSystemsTempFiles/.project b/group05/515505513/RemoteSystemsTempFiles/.project
new file mode 100644
index 0000000000..5447a64fa9
--- /dev/null
+++ b/group05/515505513/RemoteSystemsTempFiles/.project
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>RemoteSystemsTempFiles</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.rse.ui.remoteSystemsTempNature</nature>
+	</natures>
+</projectDescription>
diff --git a/group05/515505513/Task01/.classpath b/group05/515505513/Task01/.classpath
new file mode 100644
index 0000000000..fceb4801b5
--- /dev/null
+++ b/group05/515505513/Task01/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/group05/515505513/Task01/.gitignore b/group05/515505513/Task01/.gitignore
new file mode 100644
index 0000000000..ae3c172604
--- /dev/null
+++ b/group05/515505513/Task01/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/group05/515505513/Task01/.project b/group05/515505513/Task01/.project
new file mode 100644
index 0000000000..cf494f7a91
--- /dev/null
+++ b/group05/515505513/Task01/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Task01</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/group05/515505513/Task01/.settings/org.eclipse.jdt.core.prefs b/group05/515505513/Task01/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..3a21537071
--- /dev/null
+++ b/group05/515505513/Task01/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/group05/515505513/Task01/src/com/coding/basic/ArrayList.java b/group05/515505513/Task01/src/com/coding/basic/ArrayList.java
new file mode 100644
index 0000000000..29fc9b98cb
--- /dev/null
+++ b/group05/515505513/Task01/src/com/coding/basic/ArrayList.java
@@ -0,0 +1,78 @@
+package com.coding.basic;
+
+import java.util.NoSuchElementException;
+
+public class ArrayList implements List {
+
+	
+	private int size = 0;
+	private static final int DEFAULT_SIZE = 100;
+	private Object[] elementData = new Object[DEFAULT_SIZE];
+	
+	//添加元素
+	public void add(Object o){
+		add(size(),o);
+	}
+	
+
+	public void add(int index, Object o){
+		if(elementData.length==size()){
+			ensureCapacity(size()*2 + 1);
+		}
+		for (int i = size; i > index; i--) 
+			elementData[i]=elementData[i-1];
+			elementData[index] = o;
+			size++;
+	}
+	//扩容
+	public void ensureCapacity(int newCapacity){
+		if(newCapacity < size){
+			return;
+		}
+		Object[] oldElements =  elementData;
+		elementData = new Object[newCapacity];
+		for (int i = 0; i < size; i++) {
+			elementData[i] = oldElements[i];
+		}
+	}
+	//返回固定下标的元素
+	public Object get(int index){
+		if(index<0 || index >=size){
+			throw new ArrayIndexOutOfBoundsException("指定的index超过界限");
+		}
+		return elementData[index];
+	}
+	//删除指定位置的元素
+	public Object remove(int index){
+		Object removeElement = elementData[index];
+		for (int i = index; i < size; i++) {
+			elementData[i] = elementData[i+1];
+		}
+		size--;
+		return removeElement;
+	}
+	
+	public int size(){
+		return size;
+	}
+	
+	public Iterator iterator(){
+		return new ArrayListIterator();
+	}
+	
+	private class ArrayListIterator implements  Iterator{
+		private int current = 0;
+		@Override
+		public boolean hasNext() {
+			return current < size;
+		}
+		@Override
+		public Object next() {
+			if(!hasNext()){
+				 throw new NoSuchElementException();
+			}
+			return elementData[current+1];
+		}
+	}
+	
+}
diff --git a/group05/515505513/Task01/src/com/coding/basic/BinaryTreeNode.java b/group05/515505513/Task01/src/com/coding/basic/BinaryTreeNode.java
new file mode 100644
index 0000000000..d7ac820192
--- /dev/null
+++ b/group05/515505513/Task01/src/com/coding/basic/BinaryTreeNode.java
@@ -0,0 +1,32 @@
+package com.coding.basic;
+
+public class BinaryTreeNode {
+	
+	private Object data;
+	private BinaryTreeNode left;
+	private BinaryTreeNode right;
+	
+	public Object getData() {
+		return data;
+	}
+	public void setData(Object data) {
+		this.data = data;
+	}
+	public BinaryTreeNode getLeft() {
+		return left;
+	}
+	public void setLeft(BinaryTreeNode left) {
+		this.left = left;
+	}
+	public BinaryTreeNode getRight() {
+		return right;
+	}
+	public void setRight(BinaryTreeNode right) {
+		this.right = right;
+	}
+	
+	public BinaryTreeNode insert(Object o){
+		return  null;
+	}
+	
+}
diff --git a/group05/515505513/Task01/src/com/coding/basic/Iterator.java b/group05/515505513/Task01/src/com/coding/basic/Iterator.java
new file mode 100644
index 0000000000..06ef6311b2
--- /dev/null
+++ b/group05/515505513/Task01/src/com/coding/basic/Iterator.java
@@ -0,0 +1,7 @@
+package com.coding.basic;
+
+public interface Iterator {
+	public boolean hasNext();
+	public Object next();
+
+}
diff --git a/group05/515505513/Task01/src/com/coding/basic/LinkedList.java b/group05/515505513/Task01/src/com/coding/basic/LinkedList.java
new file mode 100644
index 0000000000..ea3d6a07f3
--- /dev/null
+++ b/group05/515505513/Task01/src/com/coding/basic/LinkedList.java
@@ -0,0 +1,48 @@
+package com.coding.basic;
+
+public class LinkedList implements List {
+	
+	private Node head;//指针
+	private Object element;//元素
+	//添加一个元素
+	public void add(Object o){
+		
+	}
+	//在index处添加一个元素
+	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/group05/515505513/Task01/src/com/coding/basic/List.java b/group05/515505513/Task01/src/com/coding/basic/List.java
new file mode 100644
index 0000000000..10d13b5832
--- /dev/null
+++ b/group05/515505513/Task01/src/com/coding/basic/List.java
@@ -0,0 +1,9 @@
+package com.coding.basic;
+
+public interface List {
+	public void add(Object o);
+	public void add(int index, Object o);
+	public Object get(int index);
+	public Object remove(int index);
+	public int size();
+}
diff --git a/group05/515505513/Task01/src/com/coding/basic/Queue.java b/group05/515505513/Task01/src/com/coding/basic/Queue.java
new file mode 100644
index 0000000000..fd316ac7bf
--- /dev/null
+++ b/group05/515505513/Task01/src/com/coding/basic/Queue.java
@@ -0,0 +1,49 @@
+package com.coding.basic;
+
+public class Queue {
+	private int maxSize;//队列容量
+	private Object[] queue;//队列
+	private int head;//队列头，可以删除
+	private int tail;//队列尾，可以插入
+	
+	
+	public Queue() {
+		this(10);
+	}
+
+	public Queue(int maxSize) {
+		if(maxSize >=0){
+			this.maxSize = maxSize;
+			this.queue = new Object[maxSize];
+			head = tail = 0;
+		}else {
+			throw new RuntimeException("初始化大小不能小于0");
+		}
+	}
+
+	public void enQueue(Object o){	
+		if(tail == maxSize){
+			throw new RuntimeException("队列已满，无法插入新的元素！");
+		}else {
+			queue[tail++] = o;
+		}
+	}
+	
+	public Object deQueue(){
+		if(isEmpty()){
+			 throw new RuntimeException("空队列异常！");
+		}else {
+			Object value = queue[head];
+			queue[head++] = null;
+			return value;
+		}
+	}
+	//队列是否为空
+	public boolean isEmpty(){
+		return head==tail?true:false;
+	}
+	
+	public int size(){
+		return tail-head;
+	}
+}
diff --git a/group05/515505513/Task01/src/com/coding/basic/Stack.java b/group05/515505513/Task01/src/com/coding/basic/Stack.java
new file mode 100644
index 0000000000..a85cfed9d2
--- /dev/null
+++ b/group05/515505513/Task01/src/com/coding/basic/Stack.java
@@ -0,0 +1,49 @@
+package com.coding.basic;
+
+public class Stack {
+	private Object[] data;
+	private int capacity;
+	private int size;
+	public Stack(){
+		capacity = 16;
+		size = 0;
+		data = new Object[capacity];
+	}
+	public void push(Object o){	
+		if(size < capacity){
+			data[size++]  = o;
+		}else {
+			ensureCapacity();
+			data[size++] = o;
+		}
+	}
+	
+	private void ensureCapacity() {
+		capacity = capacity*2;
+	}
+	public Object pop(){
+		if(size > 0){
+			System.out.println(data[size-1]);
+			//data[size--] = null;
+		}else {
+			System.out.println("Empty stack");
+		}
+		size--;
+		return data[size];
+	}
+	
+	public Object peek(){
+		if(size>0){
+			return data[size-1];
+		}else {
+			return null;
+		}
+	}
+	public boolean isEmpty(){
+		
+		return size==0;
+	}
+	public int size(){
+		return size;
+	}
+}
diff --git a/group05/515505513/Task01/src/com/coding/basic/TestExample.java b/group05/515505513/Task01/src/com/coding/basic/TestExample.java
new file mode 100644
index 0000000000..59bfa47a3c
--- /dev/null
+++ b/group05/515505513/Task01/src/com/coding/basic/TestExample.java
@@ -0,0 +1,27 @@
+package com.coding.basic;
+
+public class TestExample {
+
+	public static void main(String[] args) {
+		/*Stack mystack = new Stack();
+		for (int i = 0; i < 10; i++) {
+			mystack.push(i);
+		}
+		for (int i = 0; i < 10; i++) {
+			mystack.pop();
+			System.out.println("==="+mystack.peek());
+		}*/
+		
+		/*Test Queue
+		Queue myQqueue = new Queue(10);
+		for (int i = 0; i < 10; i++) {
+			myQqueue.enQueue(i);
+		}
+		for (int i = 0; i < 10; i++) {
+			System.out.println(myQqueue.deQueue());
+		}*/
+		
+		
+	}
+
+}

From 4f7b4808b96c1803f8e2f6cf52724f1ab3693b39 Mon Sep 17 00:00:00 2001
From: ZhaoHongxin <zhaohongxin621@126.com>
Date: Sun, 26 Feb 2017 00:19:49 +0800
Subject: [PATCH 06/31] test01

---
 group05/1094051862/test01/.classpath          |   7 +
 group05/1094051862/test01/.gitignore          |   1 +
 group05/1094051862/test01/.project            |  17 +++
 .../.settings/org.eclipse.jdt.core.prefs      |  12 ++
 .../src/com/coding1094051862/basic/.gitignore |   1 +
 .../coding1094051862/basic/ArrayListTest.java |  23 +++
 .../basic/BinaryTreeNode.java                 |  32 ++++
 .../com/coding1094051862/basic/Iterator.java  |   7 +
 .../coding1094051862/basic/LinkedList.java    | 142 ++++++++++++++++++
 .../basic/LinkedListTest.java                 |  32 ++++
 .../src/com/coding1094051862/basic/List.java  |   9 ++
 .../src/com/coding1094051862/basic/Queue.java |  19 +++
 .../src/com/coding1094051862/basic/Stack.java |  22 +++
 13 files changed, 324 insertions(+)
 create mode 100644 group05/1094051862/test01/.classpath
 create mode 100644 group05/1094051862/test01/.gitignore
 create mode 100644 group05/1094051862/test01/.project
 create mode 100644 group05/1094051862/test01/.settings/org.eclipse.jdt.core.prefs
 create mode 100644 group05/1094051862/test01/src/com/coding1094051862/basic/.gitignore
 create mode 100644 group05/1094051862/test01/src/com/coding1094051862/basic/ArrayListTest.java
 create mode 100644 group05/1094051862/test01/src/com/coding1094051862/basic/BinaryTreeNode.java
 create mode 100644 group05/1094051862/test01/src/com/coding1094051862/basic/Iterator.java
 create mode 100644 group05/1094051862/test01/src/com/coding1094051862/basic/LinkedList.java
 create mode 100644 group05/1094051862/test01/src/com/coding1094051862/basic/LinkedListTest.java
 create mode 100644 group05/1094051862/test01/src/com/coding1094051862/basic/List.java
 create mode 100644 group05/1094051862/test01/src/com/coding1094051862/basic/Queue.java
 create mode 100644 group05/1094051862/test01/src/com/coding1094051862/basic/Stack.java

diff --git a/group05/1094051862/test01/.classpath b/group05/1094051862/test01/.classpath
new file mode 100644
index 0000000000..04cc82dc42
--- /dev/null
+++ b/group05/1094051862/test01/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/group05/1094051862/test01/.gitignore b/group05/1094051862/test01/.gitignore
new file mode 100644
index 0000000000..ae3c172604
--- /dev/null
+++ b/group05/1094051862/test01/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/group05/1094051862/test01/.project b/group05/1094051862/test01/.project
new file mode 100644
index 0000000000..1dfd9165c6
--- /dev/null
+++ b/group05/1094051862/test01/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>test01</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/group05/1094051862/test01/.settings/org.eclipse.jdt.core.prefs b/group05/1094051862/test01/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..d17b6724d1
--- /dev/null
+++ b/group05/1094051862/test01/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/.gitignore b/group05/1094051862/test01/src/com/coding1094051862/basic/.gitignore
new file mode 100644
index 0000000000..709f74c2f7
--- /dev/null
+++ b/group05/1094051862/test01/src/com/coding1094051862/basic/.gitignore
@@ -0,0 +1 @@
+/ArrayList.java
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/ArrayListTest.java b/group05/1094051862/test01/src/com/coding1094051862/basic/ArrayListTest.java
new file mode 100644
index 0000000000..6345b9c57e
--- /dev/null
+++ b/group05/1094051862/test01/src/com/coding1094051862/basic/ArrayListTest.java
@@ -0,0 +1,23 @@
+package com.coding1094051862.basic;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class ArrayListTest {
+
+	@Test
+	public void test() {
+		ArrayList list = new ArrayList();
+		for(int i = 0; i < 10; i++) {
+			list.add(i);
+		}
+		Assert.assertEquals(10, list.size());
+		list.add(11);
+		list.add(3,99);
+		Assert.assertEquals(99, list.get(3));
+		Assert.assertEquals(12, list.size());
+		Assert.assertEquals(99, list.remove(3));
+		Assert.assertEquals(11, list.size());
+	}
+
+}
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/BinaryTreeNode.java b/group05/1094051862/test01/src/com/coding1094051862/basic/BinaryTreeNode.java
new file mode 100644
index 0000000000..09d35349b8
--- /dev/null
+++ b/group05/1094051862/test01/src/com/coding1094051862/basic/BinaryTreeNode.java
@@ -0,0 +1,32 @@
+package com.coding1094051862.basic;
+
+public class BinaryTreeNode {
+	
+	private Object data;
+	private BinaryTreeNode left;
+	private BinaryTreeNode right;
+	
+	public Object getData() {
+		return data;
+	}
+	public void setData(Object data) {
+		this.data = data;
+	}
+	public BinaryTreeNode getLeft() {
+		return left;
+	}
+	public void setLeft(BinaryTreeNode left) {
+		this.left = left;
+	}
+	public BinaryTreeNode getRight() {
+		return right;
+	}
+	public void setRight(BinaryTreeNode right) {
+		this.right = right;
+	}
+	
+	public BinaryTreeNode insert(Object o){
+		return  null;
+	}
+	
+}
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/Iterator.java b/group05/1094051862/test01/src/com/coding1094051862/basic/Iterator.java
new file mode 100644
index 0000000000..33dcc89a6a
--- /dev/null
+++ b/group05/1094051862/test01/src/com/coding1094051862/basic/Iterator.java
@@ -0,0 +1,7 @@
+package com.coding1094051862.basic;
+
+public interface Iterator {
+	public boolean hasNext();
+	public Object next();
+
+}
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/LinkedList.java b/group05/1094051862/test01/src/com/coding1094051862/basic/LinkedList.java
new file mode 100644
index 0000000000..ea3b54241b
--- /dev/null
+++ b/group05/1094051862/test01/src/com/coding1094051862/basic/LinkedList.java
@@ -0,0 +1,142 @@
+package com.coding1094051862.basic;
+
+public class LinkedList implements List {
+	
+	private Node head;
+	private Node last;
+	private int size = 0;
+	
+	public void add(Object o){
+		if (head == null) {
+			head = new Node(o, null);
+			size ++;
+			return;
+		}
+		Node n = new Node(o, null);
+		if (last == null) {
+			last = n;
+			head.next = last;
+		}
+		last.next = n;
+		last = n;
+		size ++;
+	}
+	public void add(int index , Object o){
+		if (index < 0 || index > size) {
+			System.out.println("linkedList.add: index < 0 || index > size");
+			return;
+		}
+		if (index == size) {
+			add(o);
+			return;
+		}
+		if (index == 0) {
+			addFirst(o);
+			return;
+		}
+		Node pre = head;
+		for (int i = 1; i < index; i++) {
+			pre = pre.next;
+		}
+		Node post = pre.next;
+		Node n = new Node(o,post);
+		pre.next = n;
+		size ++;
+	}
+	public Object get(int index){
+		if (index == 0) {
+			return head.data;
+		}
+		Node n = head;
+		for (int i = 1; i <= index; i++) {
+			n = n.next;
+		}
+		return n.data;
+	}
+	public Object remove(int index){
+		if (index < 0 || index >= size) {
+			System.out.println("remove :index < 0 || index >= size");
+			return null;
+		}
+		if (index == 0) {
+			return removeFirst();
+		}
+		if (index == size - 1) {
+			return removeLast();
+		}
+		Node pre = head;
+		for (int i = 1; i < index; i++) {
+			pre = pre.next;
+		}
+		Node n = pre.next;
+		Node post = n.next;
+		n.next = null;
+		pre.next = post;
+		size --;
+		return n.data;
+	}
+	
+	public int size(){
+		return size;
+	}
+	
+	public void addFirst(Object o){
+		Node n = new Node(o,head);
+		head = n;
+		size ++;
+		return;
+	}
+	public void addLast(Object o){
+		Node n = new Node(o,null);
+		last.next = n;
+		last = n;
+		size ++;
+		return;
+	}
+	public Object removeFirst(){
+		Object o = head.data;
+		Node n = head.next;
+		head.next = null;
+		head = n;
+		size --;
+		return o;
+	}
+	public Object removeLast(){
+		Node preLast = head;
+		for (int i = 1; i < size; i++) {
+			preLast = preLast.next;
+		}
+		preLast.next = null;
+		Object o = last.data;
+		last = preLast;
+		size --;
+		return o;
+	}
+	public Iterator iterator(){
+		return new Iterator() {
+			@Override
+			public Object next() {
+				// TODO Auto-generated method stub
+				return null;
+			}
+			
+			@Override
+			public boolean hasNext() {
+				// TODO Auto-generated method stub
+				return false;
+			}
+		};
+	}
+	
+	
+	private static class Node {
+		
+		Object data;
+		Node next;
+		
+		public Node (Object data, Node next) {
+			this.data = data;
+			this.next = next;
+		}
+	}
+}
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/LinkedListTest.java b/group05/1094051862/test01/src/com/coding1094051862/basic/LinkedListTest.java
new file mode 100644
index 0000000000..dccc8e1e86
--- /dev/null
+++ b/group05/1094051862/test01/src/com/coding1094051862/basic/LinkedListTest.java
@@ -0,0 +1,32 @@
+package com.coding1094051862.basic;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+public class LinkedListTest extends LinkedList {
+
+	@Test
+	public void test() {
+		List list = new LinkedList();
+		list.add(0);
+		list.add(1);
+		list.add(2);
+		list.add(3);
+		list.add(4);
+		list.add(5);
+		list.add(3, 33);
+		list.add(0, 100);
+		list.add(8,800);
+		Assert.assertEquals(9, list.size());
+		Assert.assertEquals(100, list.get(0));
+		Assert.assertEquals(0, list.get(1));
+		Assert.assertEquals(1, list.get(2));
+		Assert.assertEquals(2, list.get(3));
+		Assert.assertEquals(33, list.get(4));
+		Assert.assertEquals(3, list.get(5));
+		Assert.assertEquals(4, list.get(6));
+		Assert.assertEquals(800, list.get(8));
+	}
+
+}
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/List.java b/group05/1094051862/test01/src/com/coding1094051862/basic/List.java
new file mode 100644
index 0000000000..7f1430b67b
--- /dev/null
+++ b/group05/1094051862/test01/src/com/coding1094051862/basic/List.java
@@ -0,0 +1,9 @@
+package com.coding1094051862.basic;
+
+public interface List {
+	public void add(Object o);
+	public void add(int index, Object o);
+	public Object get(int index);
+	public Object remove(int index);
+	public int size();
+}
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/Queue.java b/group05/1094051862/test01/src/com/coding1094051862/basic/Queue.java
new file mode 100644
index 0000000000..fb9f6107fd
--- /dev/null
+++ b/group05/1094051862/test01/src/com/coding1094051862/basic/Queue.java
@@ -0,0 +1,19 @@
+package com.coding1094051862.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/group05/1094051862/test01/src/com/coding1094051862/basic/Stack.java b/group05/1094051862/test01/src/com/coding1094051862/basic/Stack.java
new file mode 100644
index 0000000000..a9fbb4635b
--- /dev/null
+++ b/group05/1094051862/test01/src/com/coding1094051862/basic/Stack.java
@@ -0,0 +1,22 @@
+package com.coding1094051862.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;
+	}
+}

From de5bb1b050944e92592708fb8767b916ddc29c73 Mon Sep 17 00:00:00 2001
From: xiaoqin0000 <xiaoqin0000@gmail.com>
Date: Sun, 26 Feb 2017 01:45:30 +0800
Subject: [PATCH 07/31] add ArrayList and LinkedList

---
 .../.idea/compiler.xml                        |  23 +
 .../.idea/description.html                    |   1 +
 .../.idea/encodings.xml                       |   5 +
 .../.idea/misc.xml                            |  12 +
 .../.idea/modules.xml                         |   8 +
 .../.idea/uiDesigner.xml                      | 124 +++
 .../.idea/vcs.xml                             |   7 +
 .../.idea/workspace.xml                       | 786 ++++++++++++++++++
 .../job_2017_02_19_data_structure.iml         |  12 +
 .../com/java/xiaoqin/impl/ArrayListImpl.java  | 112 +++
 .../com/java/xiaoqin/impl/LinkedListImpl.java | 146 ++++
 .../java/xiaoqin/interfaces/IIterator.java    |  19 +
 .../com/java/xiaoqin/interfaces/IList.java    |  47 ++
 13 files changed, 1302 insertions(+)
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/compiler.xml
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/description.html
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/encodings.xml
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/misc.xml
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/modules.xml
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/uiDesigner.xml
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/vcs.xml
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/job_2017_02_19_data_structure.iml
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/ArrayListImpl.java
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/LinkedListImpl.java
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IIterator.java
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IList.java

diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/compiler.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/compiler.xml
new file mode 100644
index 0000000000..217af471a9
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/compiler.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <option name="DEFAULT_COMPILER" value="Javac" />
+    <resourceExtensions />
+    <wildcardResourcePatterns>
+      <entry name="!?*.java" />
+      <entry name="!?*.form" />
+      <entry name="!?*.class" />
+      <entry name="!?*.groovy" />
+      <entry name="!?*.scala" />
+      <entry name="!?*.flex" />
+      <entry name="!?*.kt" />
+      <entry name="!?*.clj" />
+    </wildcardResourcePatterns>
+    <annotationProcessing>
+      <profile default="true" name="Default" enabled="false">
+        <processorPath useClasspath="true" />
+      </profile>
+    </annotationProcessing>
+  </component>
+</project>
+
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/description.html b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/description.html
new file mode 100644
index 0000000000..db5f129556
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/description.html
@@ -0,0 +1 @@
+<html>Simple <b>Java</b> application that includes a class with <code>main()</code> method</html>
\ No newline at end of file
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/encodings.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/encodings.xml
new file mode 100644
index 0000000000..e206d70d85
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/encodings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
+</project>
+
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/misc.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/misc.xml
new file mode 100644
index 0000000000..91362b9dce
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/misc.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="EntryPointsManager">
+    <entry_points version="2.0" />
+  </component>
+  <component name="ProjectKey">
+    <option name="state" value="project://63537948-39a4-48a0-9c97-34259a0fa913" />
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="Java1.8" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/modules.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/modules.xml
new file mode 100644
index 0000000000..46ad2c6b17
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/job_2017_02_19_data_structure.iml" filepath="$PROJECT_DIR$/job_2017_02_19_data_structure.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/uiDesigner.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/uiDesigner.xml
new file mode 100644
index 0000000000..e96534fb27
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Palette2">
+    <group name="Swing">
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+      </item>
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+        <initial-values>
+          <property name="text" value="Button" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="RadioButton" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="CheckBox" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="Label" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+          <preferred-size width="-1" height="20" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+      </item>
+    </group>
+  </component>
+</project>
\ No newline at end of file
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/vcs.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/vcs.xml
new file mode 100644
index 0000000000..def6a6a184
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/vcs.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="" />
+  </component>
+</project>
+
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
new file mode 100644
index 0000000000..1dc6e0b616
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
@@ -0,0 +1,786 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ChangeListManager">
+    <list default="true" id="b05ed514-db23-4321-aeff-6ae25dcb5bd7" name="Default" comment="" />
+    <ignored path="$PROJECT_DIR$/out/" />
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
+    <option name="TRACKING_ENABLED" value="true" />
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="CreatePatchCommitExecutor">
+    <option name="PATCH_PATH" value="" />
+  </component>
+  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
+  <component name="FileEditorManager">
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
+      <file leaf-file-name="Main.java" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/Main.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="225">
+              <caret line="15" column="38" lean-forward="false" selection-start-line="15" selection-start-column="38" selection-end-line="15" selection-end-column="38" />
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="LinkedListImpl.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="484">
+              <caret line="97" column="35" lean-forward="false" selection-start-line="97" selection-start-column="35" selection-end-line="97" selection-end-column="35" />
+              <folding>
+                <element signature="imports" expanded="true" />
+                <element signature="e#2013#2014#0" expanded="true" />
+                <element signature="e#2063#2064#0" expanded="true" />
+                <element signature="e#2673#2674#0" expanded="true" />
+                <element signature="e#2700#2701#0" expanded="true" />
+                <element signature="e#2752#2753#0" expanded="true" />
+                <element signature="e#2801#2802#0" expanded="true" />
+                <element signature="e#3163#3164#0" expanded="true" />
+                <element signature="e#3206#3207#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="ArrayListImpl.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="912">
+              <caret line="43" column="9" lean-forward="true" selection-start-line="43" selection-start-column="9" selection-end-line="43" selection-end-column="9" />
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
+  </component>
+  <component name="FileTemplateManagerImpl">
+    <option name="RECENT_TEMPLATES">
+      <list>
+        <option value="Interface" />
+        <option value="Class" />
+      </list>
+    </option>
+  </component>
+  <component name="FindInProjectRecents">
+    <findStrings>
+      <find>package com.java.xiaoqin.impl;  import com.java.xiaoqin.interfaces.IList;  /**  * Created by xiaoqin on 17-2-25.  */ public class ArrayListImpl&lt;T&gt; implements IList&lt;T&gt; {      private static final int DEFAULT_INIT_SIZE = 20;      private T[] data;          private int size = 0;      public ArrayListImpl(){         this(DEFAULT_INIT_SIZE);     }      public ArrayListImpl(int capacity){         if (capacity &lt; 0){             throw new IllegalArgumentException(&quot;无效的capacity：&quot; + capacity);         }         if (0 == capacity){             capacity = DEFAULT_INIT_SIZE;         }         data = (T[]) new Object[capacity];     }      @Override     public void add(T t) {      }      @Override     public void add(int index, T t) {      }      @Override     public T get(int index) {         return null;     }      @Override     public T remove(int index) {         return null;     }      @Override     public int size() {         return 0;     } }</find>
+      <find>gro</find>
+    </findStrings>
+  </component>
+  <component name="GradleLocalSettings">
+    <option name="externalProjectsViewState">
+      <projects_view />
+    </option>
+  </component>
+  <component name="IdeDocumentHistory">
+    <option name="CHANGED_PATHS">
+      <list>
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/List.java" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IIterator.java" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java" />
+        <option value="$PROJECT_DIR$/src/Main.java" />
+      </list>
+    </option>
+  </component>
+  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="JsGulpfileManager">
+    <detection-done>true</detection-done>
+    <sorting>DEFINITION_ORDER</sorting>
+  </component>
+  <component name="ProjectFrameBounds">
+    <option name="width" value="1920" />
+    <option name="height" value="1054" />
+  </component>
+  <component name="ProjectView">
+    <navigator currentView="ProjectPane" proportions="" version="1">
+      <flattenPackages />
+      <showMembers />
+      <showModules />
+      <showLibraryContents />
+      <hideEmptyPackages />
+      <abbreviatePackageNames />
+      <autoscrollToSource />
+      <autoscrollFromSource />
+      <sortByType />
+      <manualOrder />
+      <foldersAlwaysOnTop value="true" />
+    </navigator>
+    <panes>
+      <pane id="Scope" />
+      <pane id="ProjectPane">
+        <subPane>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="job_2017_02_19_data_structure" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="job_2017_02_19_data_structure" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="job_2017_02_19_data_structure" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="job_2017_02_19_data_structure" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="job_2017_02_19_data_structure" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="job_2017_02_19_data_structure" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="xiaoqin" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="interfaces" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="job_2017_02_19_data_structure" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="job_2017_02_19_data_structure" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="xiaoqin" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="impl" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+        </subPane>
+      </pane>
+      <pane id="PackagesPane" />
+      <pane id="Scratches" />
+    </panes>
+  </component>
+  <component name="PropertiesComponent">
+    <property name="WebServerToolWindowFactoryState" value="false" />
+    <property name="aspect.path.notification.shown" value="true" />
+    <property name="nodejs_interpreter_path" value="$USER_HOME$/.nvm/versions/node/v7.3.0/bin/node" />
+    <property name="js.eslint.eslintPackage" value="" />
+    <property name="js-jscs-nodeInterpreter" value="$USER_HOME$/.nvm/versions/node/v7.3.0/bin/node" />
+  </component>
+  <component name="RunManager" selected="Application.Main">
+    <configuration default="false" name="Main" type="Application" factoryName="Application" temporary="true">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="MAIN_CLASS_NAME" value="Main" />
+      <option name="VM_PARAMETERS" value="" />
+      <option name="PROGRAM_PARAMETERS" value="" />
+      <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" value="" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="job_2017_02_19_data_structure" />
+      <envs />
+      <RunnerSettings RunnerId="Run" />
+      <ConfigurationWrapper RunnerId="Run" />
+      <method />
+    </configuration>
+    <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android App">
+      <module name="" />
+      <option name="DEPLOY" value="true" />
+      <option name="ARTIFACT_NAME" value="" />
+      <option name="PM_INSTALL_OPTIONS" value="" />
+      <option name="ACTIVITY_EXTRA_FLAGS" value="" />
+      <option name="MODE" value="default_activity" />
+      <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
+      <option name="PREFERRED_AVD" value="" />
+      <option name="CLEAR_LOGCAT" value="false" />
+      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
+      <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
+      <option name="FORCE_STOP_RUNNING_APP" value="true" />
+      <option name="DEBUGGER_TYPE" value="Java" />
+      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
+      <option name="PREFERRED_AVD" value="" />
+      <Java />
+      <Profilers>
+        <option name="ENABLE_ADVANCED_PROFILING" value="true" />
+        <option name="GAPID_ENABLED" value="false" />
+        <option name="GAPID_DISABLE_PCS" value="false" />
+        <option name="SUPPORT_LIB_ENABLED" value="true" />
+        <option name="INSTRUMENTATION_ENABLED" value="true" />
+      </Profilers>
+      <option name="DEEP_LINK" value="" />
+      <option name="ACTIVITY_CLASS" value="" />
+      <method />
+    </configuration>
+    <configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
+      <module name="" />
+      <option name="TESTING_TYPE" value="0" />
+      <option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
+      <option name="METHOD_NAME" value="" />
+      <option name="CLASS_NAME" value="" />
+      <option name="PACKAGE_NAME" value="" />
+      <option name="EXTRA_OPTIONS" value="" />
+      <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
+      <option name="PREFERRED_AVD" value="" />
+      <option name="CLEAR_LOGCAT" value="false" />
+      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
+      <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
+      <option name="FORCE_STOP_RUNNING_APP" value="true" />
+      <option name="DEBUGGER_TYPE" value="Java" />
+      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
+      <option name="PREFERRED_AVD" value="" />
+      <Java />
+      <Profilers>
+        <option name="ENABLE_ADVANCED_PROFILING" value="true" />
+        <option name="GAPID_ENABLED" value="false" />
+        <option name="GAPID_DISABLE_PCS" value="false" />
+        <option name="SUPPORT_LIB_ENABLED" value="true" />
+        <option name="INSTRUMENTATION_ENABLED" value="true" />
+      </Profilers>
+      <method />
+    </configuration>
+    <configuration default="true" type="Application" factoryName="Application">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="ArquillianJUnit" factoryName="" nameIsGenerated="true">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <option name="arquillianRunConfiguration">
+        <value>
+          <option name="containerStateName" value="" />
+        </value>
+      </option>
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="TEST_OBJECT" value="class" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <envs />
+      <patterns />
+      <method />
+    </configuration>
+    <configuration default="true" type="ArquillianTestNG" factoryName="">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <option name="arquillianRunConfiguration">
+        <value>
+          <option name="containerStateName" value="" />
+        </value>
+      </option>
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="SUITE_NAME" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="GROUP_NAME" />
+      <option name="TEST_OBJECT" value="CLASS" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="OUTPUT_DIRECTORY" />
+      <option name="ANNOTATION_TYPE" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <option name="USE_DEFAULT_REPORTERS" value="false" />
+      <option name="PROPERTIES_FILE" />
+      <envs />
+      <properties />
+      <listeners />
+      <method />
+    </configuration>
+    <configuration default="true" type="Cold Fusion runner description" factoryName="Cold Fusion" custom_browser="" web_path="">
+      <method />
+    </configuration>
+    <configuration default="true" type="CucumberJavaRunConfigurationType" factoryName="Cucumber java">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="myFilePath" />
+      <option name="GLUE" />
+      <option name="myNameFilter" />
+      <option name="myGeneratedName" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="FlashRunConfigurationType" factoryName="Flash App">
+      <option name="BCName" value="" />
+      <option name="IOSSimulatorSdkPath" value="" />
+      <option name="adlOptions" value="" />
+      <option name="airProgramParameters" value="" />
+      <option name="appDescriptorForEmulator" value="Android" />
+      <option name="debugTransport" value="USB" />
+      <option name="debuggerSdkRaw" value="BC SDK" />
+      <option name="emulator" value="NexusOne" />
+      <option name="emulatorAdlOptions" value="" />
+      <option name="fastPackaging" value="true" />
+      <option name="fullScreenHeight" value="0" />
+      <option name="fullScreenWidth" value="0" />
+      <option name="launchUrl" value="false" />
+      <option name="launcherParameters">
+        <LauncherParameters>
+          <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
+          <option name="launcherType" value="OSDefault" />
+          <option name="newPlayerInstance" value="false" />
+          <option name="playerPath" value="/usr/bin/flashplayerdebugger" />
+        </LauncherParameters>
+      </option>
+      <option name="mobileRunTarget" value="Emulator" />
+      <option name="moduleName" value="" />
+      <option name="overriddenMainClass" value="" />
+      <option name="overriddenOutputFileName" value="" />
+      <option name="overrideMainClass" value="false" />
+      <option name="runTrusted" value="true" />
+      <option name="screenDpi" value="0" />
+      <option name="screenHeight" value="0" />
+      <option name="screenWidth" value="0" />
+      <option name="url" value="http://" />
+      <option name="usbDebugPort" value="7936" />
+      <method />
+    </configuration>
+    <configuration default="true" type="FlexUnitRunConfigurationType" factoryName="FlexUnit" appDescriptorForEmulator="Android" class_name="" emulatorAdlOptions="" method_name="" package_name="" scope="Class">
+      <option name="BCName" value="" />
+      <option name="launcherParameters">
+        <LauncherParameters>
+          <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
+          <option name="launcherType" value="OSDefault" />
+          <option name="newPlayerInstance" value="false" />
+          <option name="playerPath" value="/usr/bin/flashplayerdebugger" />
+        </LauncherParameters>
+      </option>
+      <option name="moduleName" value="" />
+      <option name="trusted" value="true" />
+      <method />
+    </configuration>
+    <configuration default="true" type="GradleRunConfiguration" factoryName="Gradle">
+      <ExternalSystemSettings>
+        <option name="executionName" />
+        <option name="externalProjectPath" />
+        <option name="externalSystemIdString" value="GRADLE" />
+        <option name="scriptParameters" />
+        <option name="taskDescriptions">
+          <list />
+        </option>
+        <option name="taskNames">
+          <list />
+        </option>
+        <option name="vmOptions" />
+      </ExternalSystemSettings>
+      <method />
+    </configuration>
+    <configuration default="true" type="GrailsRunConfigurationType" factoryName="Grails">
+      <setting name="vmparams" value="" />
+      <setting name="cmdLine" value="run-app" />
+      <setting name="passParentEnv" value="true" />
+      <setting name="launchBrowser" value="true" />
+      <setting name="launchBrowserUrl" value="" />
+      <method />
+    </configuration>
+    <configuration default="true" type="JUnit" factoryName="JUnit">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="TEST_OBJECT" value="class" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <envs />
+      <patterns />
+      <method />
+    </configuration>
+    <configuration default="true" type="JarApplication" factoryName="JAR Application">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="Java Scratch" factoryName="Java Scratch">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="SCRATCH_FILE_ID" value="0" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor">
+      <config-file value="" />
+      <node-interpreter value="project" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
+      <method />
+    </configuration>
+    <configuration default="true" type="JetRunConfigurationType" factoryName="Kotlin">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="job_2017_02_19_data_structure" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="KotlinStandaloneScriptRunConfigurationType" factoryName="Kotlin script">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="filePath" />
+      <option name="vmParameters" />
+      <option name="alternativeJrePath" />
+      <option name="programParameters" />
+      <option name="passParentEnvs" value="true" />
+      <option name="workingDirectory" />
+      <option name="isAlternativeJrePathEnabled" value="false" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="TestNG" factoryName="TestNG">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="SUITE_NAME" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="GROUP_NAME" />
+      <option name="TEST_OBJECT" value="CLASS" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="OUTPUT_DIRECTORY" />
+      <option name="ANNOTATION_TYPE" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <option name="USE_DEFAULT_REPORTERS" value="false" />
+      <option name="PROPERTIES_FILE" />
+      <envs />
+      <properties />
+      <listeners />
+      <method />
+    </configuration>
+    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
+      <method />
+    </configuration>
+    <configuration default="true" type="js.build_tools.npm" factoryName="npm">
+      <command value="run" />
+      <scripts />
+      <node-interpreter value="project" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="osgi.bnd.run" factoryName="Run Launcher">
+      <method />
+    </configuration>
+    <configuration default="true" type="osgi.bnd.run" factoryName="Test Launcher (JUnit)">
+      <method />
+    </configuration>
+    <list size="1">
+      <item index="0" class="java.lang.String" itemvalue="Application.Main" />
+    </list>
+    <recent_temporary>
+      <list size="1">
+        <item index="0" class="java.lang.String" itemvalue="Application.Main" />
+      </list>
+    </recent_temporary>
+  </component>
+  <component name="ShelveChangesManager" show_recycled="false">
+    <option name="remove_strategy" value="false" />
+  </component>
+  <component name="TaskManager">
+    <task active="true" id="Default" summary="Default task">
+      <changelist id="b05ed514-db23-4321-aeff-6ae25dcb5bd7" name="Default" comment="" />
+      <created>1488008946620</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1488008946620</updated>
+      <workItem from="1488008949618" duration="14808000" />
+    </task>
+    <servers />
+  </component>
+  <component name="TimeTrackingManager">
+    <option name="totallyTimeSpent" value="14808000" />
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="0" y="0" width="1920" height="1054" extended-state="0" />
+    <editor active="true" />
+    <layout>
+      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+      <window_info id="Nl-Palette" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
+      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24973877" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
+      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+    </layout>
+  </component>
+  <component name="TypeScriptGeneratedFilesManager">
+    <option name="processedProjectFiles" value="true" />
+  </component>
+  <component name="VcsContentAnnotationSettings">
+    <option name="myLimit" value="2678400000" />
+  </component>
+  <component name="XDebuggerManager">
+    <breakpoint-manager>
+      <breakpoints>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java</url>
+          <line>36</line>
+          <properties />
+          <option name="timeStamp" value="8" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java</url>
+          <line>53</line>
+          <properties />
+          <option name="timeStamp" value="9" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java</url>
+          <line>84</line>
+          <properties />
+          <option name="timeStamp" value="10" />
+        </line-breakpoint>
+      </breakpoints>
+      <option name="time" value="11" />
+    </breakpoint-manager>
+    <watches-manager>
+      <configuration name="Application">
+        <watch expression="data.length - index - 1" />
+        <watch expression="size &gt;&gt; 1" />
+        <watch expression="size &gt;&gt; 1" />
+        <watch expression=" size + size &gt;&gt; 1" />
+        <watch expression="data.length - index - 1" />
+        <watch expression="size - index - 1" />
+      </configuration>
+    </watches-manager>
+  </component>
+  <component name="antWorkspaceConfiguration">
+    <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
+    <option name="FILTER_TARGETS" value="false" />
+  </component>
+  <component name="editorHistoryManager">
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="120">
+          <caret line="5" column="23" lean-forward="false" selection-start-line="5" selection-start-column="23" selection-end-line="5" selection-end-column="23" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/AbstractList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-12709">
+          <caret line="70" column="22" lean-forward="false" selection-start-line="70" selection-start-column="22" selection-end-line="70" selection-end-column="22" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/lang/ArrayIndexOutOfBoundsException.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="545">
+          <caret line="53" column="11" lean-forward="false" selection-start-line="53" selection-start-column="11" selection-end-line="53" selection-end-column="11" />
+          <folding>
+            <element signature="e#1035#1036#0" expanded="false" />
+            <element signature="e#1094#1095#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-711">
+          <caret line="53" column="17" lean-forward="false" selection-start-line="53" selection-start-column="17" selection-end-line="53" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="195">
+          <caret line="151" column="27" lean-forward="true" selection-start-line="151" selection-start-column="4" selection-end-line="151" selection-end-column="27" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IIterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="336">
+          <caret line="14" column="15" lean-forward="false" selection-start-line="14" selection-start-column="15" selection-end-line="14" selection-end-column="15" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="204">
+          <caret line="18" column="9" lean-forward="false" selection-start-line="18" selection-start-column="9" selection-end-line="18" selection-end-column="9" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="235">
+          <caret line="251" column="17" lean-forward="false" selection-start-line="251" selection-start-column="17" selection-end-line="251" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="912">
+          <caret line="43" column="9" lean-forward="true" selection-start-line="43" selection-start-column="9" selection-end-line="43" selection-end-column="9" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="484">
+          <caret line="97" column="35" lean-forward="false" selection-start-line="97" selection-start-column="35" selection-end-line="97" selection-end-column="35" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="e#2013#2014#0" expanded="true" />
+            <element signature="e#2063#2064#0" expanded="true" />
+            <element signature="e#2673#2674#0" expanded="true" />
+            <element signature="e#2700#2701#0" expanded="true" />
+            <element signature="e#2752#2753#0" expanded="true" />
+            <element signature="e#2801#2802#0" expanded="true" />
+            <element signature="e#3163#3164#0" expanded="true" />
+            <element signature="e#3206#3207#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/Main.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="225">
+          <caret line="15" column="38" lean-forward="false" selection-start-line="15" selection-start-column="38" selection-end-line="15" selection-end-column="38" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+  </component>
+</project>
\ No newline at end of file
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/job_2017_02_19_data_structure.iml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/job_2017_02_19_data_structure.iml
new file mode 100644
index 0000000000..d5c0743275
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/job_2017_02_19_data_structure.iml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
+
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/ArrayListImpl.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/ArrayListImpl.java
new file mode 100644
index 0000000000..c96d0b4f30
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/ArrayListImpl.java
@@ -0,0 +1,112 @@
+package com.java.xiaoqin.impl;
+
+import com.java.xiaoqin.interfaces.IIterator;
+import com.java.xiaoqin.interfaces.IList;
+
+/**
+ * Created by xiaoqin on 17-2-25.
+ */
+public class ArrayListImpl<T> implements IList<T> {
+
+    private static final int DEFAULT_INIT_SIZE = 20;
+
+    private T[] data;
+
+    private int size = 0;
+
+    public ArrayListImpl() {
+        this(DEFAULT_INIT_SIZE);
+    }
+
+    public ArrayListImpl(int capacity) {
+        if (capacity < 0) {
+            throw new IllegalArgumentException("无效的capacity：" + capacity);
+        }
+        if (0 == capacity) {
+            capacity = DEFAULT_INIT_SIZE;
+        }
+        data = (T[]) new Object[capacity];
+    }
+
+    @Override
+    public void add(T t) {
+        group(size);
+        data[size++] = t;
+    }
+
+    @Override
+    public void add(int index, T t) {
+        if (index < 0) {
+            throw new IllegalArgumentException("index < 0，index:" + index);
+        }
+        if (index > size) {
+            throw new IndexOutOfBoundsException("index >= size。index:" + index + "\tsize:" + size);
+        }
+        group(size);
+        T[] temp = (T[]) new Object[size - index];
+        System.arraycopy(data, index, temp, 0, temp.length);
+        data[index] = t;
+        size++;
+        System.arraycopy(temp, 0, data, index + 1, temp.length);
+    }
+
+    @Override
+    public T get(int index) {
+        if (index < data.length) {
+            return data[index];
+        } else {
+            throw new ArrayIndexOutOfBoundsException(index);
+        }
+    }
+
+    @Override
+    public T remove(int index) {
+        if (index < 0 || index >= size) {
+            throw new IllegalArgumentException("index invalid!!!index:" + index);
+        }
+        T[] temp = (T[]) new Object[size - index - 1];
+        System.arraycopy(data, index + 1, temp, 0, temp.length);
+        T result = data[index];
+        System.arraycopy(temp, 0, data, index, temp.length);
+        data[--size] = null;
+        return result;
+    }
+
+    @Override
+    public int size() {
+        return size;
+    }
+
+    @Override
+    public IIterator<T> iterator() {
+        return new ArrayIteratorImpl<>();
+    }
+
+    private void group(int minSize) {
+        if (minSize >= data.length) {
+            T[] temp = (T[]) new Object[size];
+            System.arraycopy(data, 0, temp, 0, size);
+            int groupSize = (size >> 1) + size;
+            data = (T[]) new Object[Math.max(groupSize, minSize)];
+            System.arraycopy(temp, 0, data, 0, size);
+        }
+    }
+
+    private class ArrayIteratorImpl<T> implements IIterator<T> {
+
+        private int index = 0;
+
+        @Override
+        public boolean hasNext() {
+            return index < size;
+        }
+
+        @Override
+        public T next() {
+            if (index >= size) {
+                throw new ArrayIndexOutOfBoundsException("index out");
+            }
+            return (T) data[index++];
+        }
+    }
+}
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/LinkedListImpl.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/LinkedListImpl.java
new file mode 100644
index 0000000000..90f8c326af
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/LinkedListImpl.java
@@ -0,0 +1,146 @@
+package com.java.xiaoqin.impl;
+
+import com.java.xiaoqin.interfaces.IIterator;
+import com.java.xiaoqin.interfaces.IList;
+
+/**
+ * Created by xiaoqin on 17-2-26.
+ */
+public class LinkedListImpl<T> implements IList<T> {
+
+    private Node<T> head;
+    private Node<T> last;
+    private int size = 0;
+
+    public LinkedListImpl() {
+    }
+
+    @Override
+    public void add(T t) {
+        if (size == 0) {
+            head = new Node<>();
+            head.data = t;
+            head.index = size++;
+            last = head;
+        } else {
+            last.right = new Node<>();
+            last.right.left = last;
+            last = last.right;
+            last.data = t;
+            last.index = size++;
+        }
+    }
+
+    @Override
+    public void add(int index, T t) {
+        Node<T> node = findNodeByIndex(index);
+        if (node.index == 0) {
+            node.left = new Node<>();
+            node.left.right = node;
+            node.left.index = 0;
+            node.left.data = t;
+            head = node.left;
+        } else {
+            node.left.right = new Node<>();
+            node.left.right.index = node.index;
+            node.left.right.right = node;
+            node.left.right.data = t;
+            node.left = node.left.right;
+        }
+        while (node.right != null) {
+            node.index++;
+            node = node.right;
+        }
+        size++;
+    }
+
+    private Node<T> findNodeByIndex(int index) {
+        if (index >= size) {
+            throw new ArrayIndexOutOfBoundsException("index：" + index);
+        }
+        Node<T> resultNode = null;
+        Node<T> origin = null;
+        int half = size >> 1;
+        if (index > half) {
+            origin = last;
+            while (origin.index != index) {
+                origin = origin.left;
+            }
+        } else {
+            origin = head;
+            while (origin.index != index) {
+                origin = origin.right;
+            }
+        }
+        return origin;
+    }
+
+    @Override
+    public T get(int index) {
+        return findNodeByIndex(index).data;
+    }
+
+    @Override
+    public T remove(int index) {
+        Node<T> node = findNodeByIndex(index);
+        if (null != node.left) {
+            node.left.right = node.right;
+        } else {
+            node.right.left = null;
+            head = node.right;
+        }
+        if (null != node.right) {
+            node.right.left = node.left;
+            while (node.right == null) {
+                node.right.index--;
+            }
+        } else {
+            node.left.right = null;
+            last = node.left;
+        }
+        size--;
+        return node.data;
+    }
+
+    @Override
+    public int size() {
+        return size;
+    }
+
+    @Override
+    public IIterator<T> iterator() {
+        return new LinkedIteratorImpl<>();
+    }
+
+    private static class Node<T> {
+        private T data = null;
+        private Node<T> left = null;
+        private Node<T> right = null;
+        private int index = 0;
+    }
+
+    private class LinkedIteratorImpl<T> implements IIterator<T> {
+
+        private int index = 0;
+        private Node<T> next;
+
+        @Override
+        public boolean hasNext() {
+            return index < size;
+        }
+
+        @Override
+        public T next() {
+            if (0 == index) {
+                next = (Node<T>) head;
+            }
+            if (null == next) {
+                throw new ArrayIndexOutOfBoundsException("next is null");
+            }
+            Node<T> result = next;
+            next = next.right;
+            index++;
+            return result.data;
+        }
+    }
+}
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IIterator.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IIterator.java
new file mode 100644
index 0000000000..bd83985af4
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IIterator.java
@@ -0,0 +1,19 @@
+package com.java.xiaoqin.interfaces;
+
+/**
+ * Created by xiaoqin on 17-2-25.
+ */
+public interface IIterator<T> {
+
+    /**
+     * 是否有下一个
+     * @return
+     */
+    boolean hasNext();
+
+    /**
+     * 取出下一个的元素
+     * @return
+     */
+    T next();
+}
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IList.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IList.java
new file mode 100644
index 0000000000..1a7a01cbca
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IList.java
@@ -0,0 +1,47 @@
+package com.java.xiaoqin.interfaces;
+
+/**
+ * Created by xiaoqin on 17-2-19.
+ */
+public interface IList<T> {
+
+    /**
+     * 添加元素
+     * @param t
+     */
+    void add(T t);
+
+    /**
+     * 添加元素在第几个
+     * @param index
+     * @param t
+     */
+    void add(int index,T t);
+
+    /**
+     * 获取第index个的元素
+     * @param index
+     * @return
+     */
+    T get(int index);
+
+    /**
+     * 移除第index个的元素
+     * @param index
+     * @return
+     */
+    T remove(int index);
+
+    /**
+     * 返回List的大小
+     * @return
+     */
+    int size();
+
+    /**
+     * 返回迭代器
+     * @return
+     */
+    IIterator<T> iterator();
+
+}

From 649038500e4120196fdf8be8dcfb3b9dd1a09059 Mon Sep 17 00:00:00 2001
From: xiaoqin0000 <xiaoqin0000@gmail.com>
Date: Sun, 26 Feb 2017 01:48:03 +0800
Subject: [PATCH 08/31] add .gitignore

---
 .../job_2017_02_19_data_structure/.gitignore  |  6 ++
 .../.idea/workspace.xml                       | 65 ++++++++-----------
 2 files changed, 34 insertions(+), 37 deletions(-)
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.gitignore

diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.gitignore b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.gitignore
new file mode 100644
index 0000000000..a2b48b352f
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.gitignore
@@ -0,0 +1,6 @@
+/vendor
+/node_modules
+Homestead.yaml
+Homestead.json
+.env
+.idea
\ No newline at end of file
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
index 1dc6e0b616..2b612eeea0 100644
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
@@ -16,18 +16,6 @@
   <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file leaf-file-name="Main.java" pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/Main.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="225">
-              <caret line="15" column="38" lean-forward="false" selection-start-line="15" selection-start-column="38" selection-end-line="15" selection-end-column="38" />
-              <folding>
-                <element signature="imports" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
       <file leaf-file-name="LinkedListImpl.java" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java">
           <provider selected="true" editor-type-id="text-editor">
@@ -48,6 +36,16 @@
           </provider>
         </entry>
       </file>
+      <file leaf-file-name=".gitignore" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/.gitignore">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="120">
+              <caret line="5" column="0" lean-forward="false" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
       <file leaf-file-name="ArrayListImpl.java" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
           <provider selected="true" editor-type-id="text-editor">
@@ -88,8 +86,9 @@
         <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IIterator.java" />
         <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java" />
         <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java" />
         <option value="$PROJECT_DIR$/src/Main.java" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java" />
+        <option value="$PROJECT_DIR$/.gitignore" />
       </list>
     </option>
   </component>
@@ -131,20 +130,6 @@
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
           </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="job_2017_02_19_data_structure" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="job_2017_02_19_data_structure" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="src" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
           <PATH>
             <PATH_ELEMENT>
               <option name="myItemId" value="job_2017_02_19_data_structure" />
@@ -589,12 +574,12 @@
       <option name="number" value="Default" />
       <option name="presentableId" value="Default" />
       <updated>1488008946620</updated>
-      <workItem from="1488008949618" duration="14808000" />
+      <workItem from="1488008949618" duration="14950000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="14808000" />
+    <option name="totallyTimeSpent" value="14950000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="0" y="0" width="1920" height="1054" extended-state="0" />
@@ -609,10 +594,10 @@
       <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
       <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
       <window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
       <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
       <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
       <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24973877" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
@@ -754,6 +739,14 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/Main.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-231">
+          <caret line="15" column="38" lean-forward="false" selection-start-line="15" selection-start-column="38" selection-end-line="15" selection-end-column="38" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="484">
@@ -772,13 +765,11 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/Main.java">
+    <entry file="file://$PROJECT_DIR$/.gitignore">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="225">
-          <caret line="15" column="38" lean-forward="false" selection-start-line="15" selection-start-column="38" selection-end-line="15" selection-end-column="38" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
+        <state relative-caret-position="120">
+          <caret line="5" column="0" lean-forward="false" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
+          <folding />
         </state>
       </provider>
     </entry>

From 000f23dbdce3551d2d4d882b52fc78a5fce9677e Mon Sep 17 00:00:00 2001
From: nitasty <nitasty@163.com>
Date: Sun, 26 Feb 2017 16:16:15 +0800
Subject: [PATCH 09/31] =?UTF-8?q?ArrayList,=20LinkedList,=20Stack,=20Queue?=
 =?UTF-8?q?,=20Iteartor,=20BinaryTree=20=E5=AE=9E=E7=8E=B0=E5=8F=8A=20?=
 =?UTF-8?q?=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../src/com/nitasty/test/ArrayListTest.java   |  95 +++++
 .../src/com/nitasty/test/BinaryTreeTest.java  |  66 +++
 .../src/com/nitasty/test/LinkedListTest.java  | 142 +++++++
 .../src/com/nitasty/test/QueueTest.java       |  49 +++
 .../src/com/nitasty/test/StackTest.java       |  51 +++
 .../src/com/nitasty/util/ArrayList.java       | 307 ++++++++++++++
 .../src/com/nitasty/util/BinaryTree.java      | 190 +++++++++
 .../src/com/nitasty/util/BinaryTreeNode.java  |  43 ++
 .../src/com/nitasty/util/Iterator.java        |   7 +
 .../src/com/nitasty/util/LinkedList.java      | 393 ++++++++++++++++++
 .../task_01/src/com/nitasty/util/List.java    |  46 ++
 .../task_01/src/com/nitasty/util/Queue.java   |  27 ++
 .../task_01/src/com/nitasty/util/Stack.java   |  31 ++
 13 files changed, 1447 insertions(+)
 create mode 100644 group05/371492887/task_01/src/com/nitasty/test/ArrayListTest.java
 create mode 100644 group05/371492887/task_01/src/com/nitasty/test/BinaryTreeTest.java
 create mode 100644 group05/371492887/task_01/src/com/nitasty/test/LinkedListTest.java
 create mode 100644 group05/371492887/task_01/src/com/nitasty/test/QueueTest.java
 create mode 100644 group05/371492887/task_01/src/com/nitasty/test/StackTest.java
 create mode 100644 group05/371492887/task_01/src/com/nitasty/util/ArrayList.java
 create mode 100644 group05/371492887/task_01/src/com/nitasty/util/BinaryTree.java
 create mode 100644 group05/371492887/task_01/src/com/nitasty/util/BinaryTreeNode.java
 create mode 100644 group05/371492887/task_01/src/com/nitasty/util/Iterator.java
 create mode 100644 group05/371492887/task_01/src/com/nitasty/util/LinkedList.java
 create mode 100644 group05/371492887/task_01/src/com/nitasty/util/List.java
 create mode 100644 group05/371492887/task_01/src/com/nitasty/util/Queue.java
 create mode 100644 group05/371492887/task_01/src/com/nitasty/util/Stack.java

diff --git a/group05/371492887/task_01/src/com/nitasty/test/ArrayListTest.java b/group05/371492887/task_01/src/com/nitasty/test/ArrayListTest.java
new file mode 100644
index 0000000000..907302f3c1
--- /dev/null
+++ b/group05/371492887/task_01/src/com/nitasty/test/ArrayListTest.java
@@ -0,0 +1,95 @@
+package com.nitasty.test;
+
+import static org.junit.Assert.*;
+import junit.framework.Assert;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import com.nitasty.util.ArrayList;
+import com.nitasty.util.Iterator;
+
+public class ArrayListTest {
+	
+	private ArrayList list;
+	
+	@Before
+	public void init(){
+		list=new ArrayList();
+		for (int i = 0; i < 100; i++) {
+			list.add(i);
+		}
+	}
+	
+	@Test
+	public void testAddObject() {
+		list.add(100);
+		Assert.assertEquals(101, list.size());
+	}
+
+	@Test
+	public void testAddIntObject() {
+		list.add(3,"test");
+		Assert.assertEquals("test", list.get(3));
+	}
+
+	@Test
+	public void testRemoveInt() {
+		list.add(3,"test");
+		list.remove(3);
+		Assert.assertEquals(3, list.get(3));
+	}
+
+	@Test
+	public void testRemoveObject() {
+		list.add(0,"test");
+		list.remove("test");
+		Assert.assertEquals(0, list.get(0));
+	}
+
+
+	@Test
+	public void testIsEmpty() {
+		list.clear();
+		Assert.assertEquals(true, list.isEmpty());
+	}
+
+	@Test
+	public void testContains() {
+		Assert.assertEquals(false, list.contains("test"));
+		list.add("test");
+		Assert.assertEquals(true, list.contains("test"));
+	}
+
+	
+
+	@Test
+	public void testSet() {
+		Assert.assertEquals(true, list.contains(3));
+		list.set(3, "test");
+		Assert.assertEquals(true, list.contains("test"));
+		Assert.assertEquals(false, list.contains(3));
+	}
+
+	@Test
+	public void testIndexOf() {
+		list.set(3, "test");
+		Assert.assertEquals(3, list.indexOf("test"));
+	}
+
+	@Test
+	public void testLastIndexOf() {
+		list.set(3, "test");
+		list.set(33, "test");
+		Assert.assertEquals(33, list.lastIndexOf("test"));
+	}
+	
+	@Test
+	public void testHasNext(){
+		int i=0;
+		for(Iterator it=list.iterator();it.hasNext();i++){
+			Assert.assertEquals(i, it.next());
+//			System.out.println(it.next());
+		}
+	}
+}
diff --git a/group05/371492887/task_01/src/com/nitasty/test/BinaryTreeTest.java b/group05/371492887/task_01/src/com/nitasty/test/BinaryTreeTest.java
new file mode 100644
index 0000000000..abb27b5691
--- /dev/null
+++ b/group05/371492887/task_01/src/com/nitasty/test/BinaryTreeTest.java
@@ -0,0 +1,66 @@
+package com.nitasty.test;
+
+import static org.junit.Assert.*;
+import junit.framework.Assert;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import com.nitasty.util.BinaryTree;
+
+public class BinaryTreeTest {
+	
+	BinaryTree<Integer> tree;
+	
+	@Before
+	public void init(){
+		tree=new BinaryTree<Integer>();
+		tree.insert(5);
+		tree.insert(3);
+		tree.insert(8);
+		tree.insert(2);
+		tree.insert(7);
+		tree.insert(9);
+		tree.insert(1);
+		tree.insert(4);
+		tree.insert(10);
+		tree.insert(6);
+	}
+
+	@Test
+	public void testMakeEmpty() {
+		tree.makeEmpty();
+		Assert.assertEquals(true, tree.isEmpty());
+	}
+
+	@Test
+	public void testGetHeight() {
+		Assert.assertEquals(3, tree.getHeight());
+	}
+
+	@Test
+	public void testContains() {
+		for (int i = 1; i < 11; i++) {
+			Assert.assertEquals(true, tree.contains(i));
+		}
+	}
+
+	@Test
+	public void testFindMin() {
+		Assert.assertEquals(1, tree.findMin());
+	}
+
+	@Test
+	public void testFindMax() {
+		Assert.assertEquals(10, tree.findMax());
+	}
+
+
+	@Test
+	public void testRemove() {
+		tree.remove(3);
+		Assert.assertEquals(false, tree.contains(3));
+	}
+	
+	
+}
diff --git a/group05/371492887/task_01/src/com/nitasty/test/LinkedListTest.java b/group05/371492887/task_01/src/com/nitasty/test/LinkedListTest.java
new file mode 100644
index 0000000000..dcbe6353c3
--- /dev/null
+++ b/group05/371492887/task_01/src/com/nitasty/test/LinkedListTest.java
@@ -0,0 +1,142 @@
+package com.nitasty.test;
+
+import static org.junit.Assert.*;
+import junit.framework.Assert;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import com.nitasty.util.ArrayList;
+import com.nitasty.util.Iterator;
+import com.nitasty.util.LinkedList;
+
+public class LinkedListTest {
+	
+	private LinkedList list;
+	
+	@Before
+	public void init(){
+		list=new LinkedList();
+		for (int i = 0; i < 100; i++) {
+			list.add(i);
+		}
+	}
+	
+	@Test
+	public void testGet() {
+		IndexOutOfBoundsException tx=null;
+		for (int i = 0; i < 100; i++) {
+			Assert.assertEquals(i, list.get(i));
+		}
+
+		try {
+			list.get(100);
+		} catch (IndexOutOfBoundsException e) {
+			tx=e;
+		}
+		Assert.assertEquals(IndexOutOfBoundsException.class,tx.getClass());
+	}
+
+	@Test
+	public void testRemoveInt() {
+		for (int i = 99; i >= 0; i--) {
+			Assert.assertEquals(i, list.remove(i));
+		}
+	}
+
+	@Test
+	public void testSize() {
+			Assert.assertEquals(100, list.size());
+	}
+
+	@Test
+	public void testAddFirst() {
+		list.addFirst(-1);
+		for (int i = 0; i < 101; i++) {
+			Assert.assertEquals(i-1, list.get(i));
+		}
+	}
+
+	@Test
+	public void testAddLast() {
+		
+		for (int i = 100; i < 1000; i++) {
+			list.addLast(i);
+		}
+
+		for (int i = 0; i < 1000; i++) {
+			Assert.assertEquals(i, list.get(i));
+		}
+	}
+
+	@Test
+	public void testAddBefore() {
+			list.addBefore(66,list.node(3));
+			Assert.assertEquals(66, list.get(3));
+	}
+
+	@Test
+	public void testAddAfter() {
+		list.addAfter(66,list.node(3));
+		Assert.assertEquals(66, list.get(4));
+	}
+
+	@Test
+	public void testIsEmpty() {
+		list.clear();
+		Assert.assertEquals(true, list.isEmpty());
+	}
+
+	@Test
+	public void testContains() {
+		for (int i = 0; i < 100; i++) {
+			Assert.assertEquals(true, list.contains(i));
+			Assert.assertEquals(false, list.contains(i+100));
+		}
+	}
+
+
+	@Test
+	public void testAddIntObject() {
+		list.add(20,"test");
+		Assert.assertEquals("test", list.get(20));
+	}
+
+	@Test
+	public void testRemoveObject() {
+		list.remove(30);
+		Assert.assertEquals(31, list.get(30));
+	}
+	
+	@Test
+	public void testSet() {
+		for (int i = 0; i < 100; i++) {
+			list.set(i, i+100);
+			Assert.assertEquals(i+100, list.get(i));
+		}
+	}
+
+	@Test
+	public void testIndexOf() {
+		list.set(3, "test");
+		Assert.assertEquals(3, list.indexOf("test"));
+	}
+
+	@Test
+	public void testLastIndexOf() {
+		list.set(3, "test");
+		list.set(33, "test");
+		Assert.assertEquals(33, list.lastIndexOf("test"));
+	}
+	
+	@Test
+	public void testHasNext(){
+		int i=0;
+		
+		for(Iterator it=list.iterator();it.hasNext();i++){
+			Assert.assertEquals(i, it.next());
+//			System.out.println(it.next());
+		}
+	}
+
+}
diff --git a/group05/371492887/task_01/src/com/nitasty/test/QueueTest.java b/group05/371492887/task_01/src/com/nitasty/test/QueueTest.java
new file mode 100644
index 0000000000..fa17263108
--- /dev/null
+++ b/group05/371492887/task_01/src/com/nitasty/test/QueueTest.java
@@ -0,0 +1,49 @@
+package com.nitasty.test;
+
+import static org.junit.Assert.*;
+import junit.framework.Assert;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import com.nitasty.util.LinkedList;
+import com.nitasty.util.Queue;
+
+public class QueueTest {
+	
+	Queue queue;
+	
+	@Before
+	public void init(){
+		queue=new Queue();
+		for (int i = 0; i < 100; i++) {
+			queue.enQueue(i);
+		}
+	}
+
+	@Test
+	public void testDeQueue() {
+		for(int i=0; i<100;i++){
+			Assert.assertEquals(i, queue.deQueue());
+		}
+	}
+
+	@Test
+	public void testIsEmpty() {
+		for(int i=0; i<100;i++){
+			queue.deQueue();
+			if(i<99)
+				Assert.assertEquals(false, queue.isEmpty());
+		}
+		Assert.assertEquals(true, queue.isEmpty());
+	}
+
+	@Test
+	public void testSize() {
+		for(int i=99; i>0;i--){
+			queue.deQueue();
+			Assert.assertEquals(i, queue.size());
+		}
+	}
+
+}
diff --git a/group05/371492887/task_01/src/com/nitasty/test/StackTest.java b/group05/371492887/task_01/src/com/nitasty/test/StackTest.java
new file mode 100644
index 0000000000..3ecd59219a
--- /dev/null
+++ b/group05/371492887/task_01/src/com/nitasty/test/StackTest.java
@@ -0,0 +1,51 @@
+package com.nitasty.test;
+
+import static org.junit.Assert.*;
+import junit.framework.Assert;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import com.nitasty.util.LinkedList;
+import com.nitasty.util.Stack;
+
+public class StackTest {
+	
+	Stack stack;
+	
+	@Before
+	public void init(){
+		stack=new Stack();
+		for (int i = 0; i < 100; i++) {
+			stack.push(i);
+		}
+	}
+
+	@Test
+	public void testPop() {
+		for (int i = 99; i >=0; i--) {
+			Assert.assertEquals(i, stack.pop());
+		}
+	}
+
+	@Test
+	public void testPeek() {
+		for (int i = 99; i >=0; i--) {
+			Assert.assertEquals(99, stack.peek());
+		}
+	}
+
+	@Test
+	public void testIsEmpty() {
+		for (int i = 99; i >=0; i--) {
+			 stack.pop();
+		}
+		Assert.assertEquals(true,stack.isEmpty());
+	}
+
+	@Test
+	public void testSize() {
+		Assert.assertEquals(100,stack.size());
+	}
+
+}
diff --git a/group05/371492887/task_01/src/com/nitasty/util/ArrayList.java b/group05/371492887/task_01/src/com/nitasty/util/ArrayList.java
new file mode 100644
index 0000000000..88ef682cf9
--- /dev/null
+++ b/group05/371492887/task_01/src/com/nitasty/util/ArrayList.java
@@ -0,0 +1,307 @@
+package com.nitasty.util;
+
+import java.util.Arrays;
+import java.util.Objects;
+
+public class ArrayList implements List {
+
+	// �����ڲ�����
+	private static final int DEFAULT_CAPACITY = 10;
+
+	private static final Object[] EMPTY_ELEMENTDATA = {};
+
+	private int size;
+
+	private Object[] elementData;
+
+	/**
+	 * 
+	 * �޲γ�ʼ��Ϊ�����飬��ʡ�ռ�
+	 */
+	public ArrayList() {
+		this.elementData = EMPTY_ELEMENTDATA;
+	}
+
+	/**
+	 * 
+	 * @param initCapacity
+	 */
+	public ArrayList(int initCapacity) {
+		if (initCapacity > 0) {
+			elementData = new Object[initCapacity];
+		} else if (initCapacity == 0) {
+			elementData = EMPTY_ELEMENTDATA;
+		} else {
+			throw new IllegalArgumentException("�Ƿ���ʼ������" + initCapacity);
+		}
+
+	}
+
+	// TODO
+	public ArrayList(List list) {
+		list.toArray();
+
+	}
+
+	/**
+	 * ����У��
+	 * 
+	 * @param minCapacity
+	 */
+	private void ensureCapacity(int minCapacity) {
+
+		if (elementData.length < minCapacity) {
+			grow(minCapacity);
+		}
+
+	}
+
+	/**
+	 * ��������
+	 * 
+	 * @param minCapacity
+	 * @return
+	 */
+	private void grow(int minCapacity) {
+		// ������
+		int oldCapacity = this.elementData.length;
+		// ������Ϊ��������1.5��
+		int newCapacity = oldCapacity + oldCapacity >> 1;
+		// ����������С�����Ƚ�
+		if (newCapacity < minCapacity) {
+			newCapacity = minCapacity;
+		}
+		// ���������ܴ���int���ֵ
+		if (newCapacity > Integer.MAX_VALUE) {
+			newCapacity = Integer.MAX_VALUE;
+		}
+		elementData = Arrays.copyOf(elementData, newCapacity);
+
+	}
+
+	@Override
+	public int size() {
+		return size;
+	}
+
+	@Override
+	public boolean isEmpty() {
+		return size == 0;
+	}
+
+	@Override
+	public boolean contains(Object o) {
+		return indexOf(o) >= 0; //��д=��������ֵ�bug
+	}
+
+	@Override
+	public boolean add(Object o) {
+
+		ensureCapacity(size + 1);
+
+		elementData[size++] = o;// size��index��1
+
+		return true;
+	}
+
+	private void rangeCheck(int index) {
+		if (index < 0 || index > size)
+			throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
+	}
+
+	private String outOfBoundsMsg(int index) {
+		return "index:" + index + ", size:" + size;
+	}
+
+	@Override
+	public boolean add(int index, Object o) {
+
+		rangeCheck(index);
+		ensureCapacity(size + 1);
+		System.arraycopy(elementData, index, elementData, index + 1, size
+				- index);// size������ը��
+		elementData[index] = o;
+		return true;
+	}
+
+	@Override
+	public boolean addAll(Object[] o) {
+		int numNew = o.length;
+		ensureCapacity(size + numNew);
+		System.arraycopy(o, 0, elementData, size, numNew);
+		size += numNew;// size����
+		return numNew != 0;
+	}
+
+	@Override
+	public boolean addAll(int index, Object[] o) {
+		rangeCheck(index);
+		int numNew = o.length;
+		ensureCapacity(size + numNew);
+
+		int numMoved = size - index;// ����rangeCheck��index�϶�С��size��
+		if (numMoved > 0)
+			System.arraycopy(elementData, index, elementData, size + numNew,
+					numNew);// ������ԭԪ���Ƶ�����
+		System.arraycopy(o, 0, elementData, index, numNew);// ���ƽ�Ҫ���ӵ�Ԫ��
+
+		size += numNew;// ��Ҫ���˰�����������
+		return numNew != 0;
+	}
+
+	@Override
+	public Object remove(int index) {
+		rangeCheck(index);
+		Object oldValue = elementData[index];
+
+		int numMoved = size - index - 1;
+		if (numMoved > 0)
+			System.arraycopy(elementData, index+1, elementData, index,
+					numMoved);
+		elementData[--size] = null;// Clear to let gc do its work
+
+		return oldValue;
+	}
+
+	@Override
+	public boolean remove(Object o) {
+		int index=this.indexOf(o);
+		if(index==-1){
+			return false;
+		}else{
+			this.remove(index);
+			return true;
+		}
+	}
+
+	@Override
+	/**
+	 * ����ɾ��list
+	 */
+	public boolean removeAll(List list) {
+		Objects.requireNonNull(list);
+		return batchRemove(list,false);
+	}
+	
+	/**
+	 * ����ʵ��removeALl��retainAll
+	 * @param list
+	 * @param complement
+	 * @return
+	 */
+	private boolean batchRemove(List list, boolean complement) {
+		final Object[] elementData=this.elementData;
+		int r=0,w=0;
+		boolean modified=false;
+		try{
+			for(;r<size;r++){
+				if(list.contains(elementData[r])==complement){
+					elementData[w++]=elementData[r];
+				}
+			}
+		}finally{
+			if(r!=size){
+				System.arraycopy(elementData, r, elementData, w, size-r);// ���contains�����쳣�����������δ���д����Ĳ���copy���Ѵ������ֵĺ��棬modify��ȻΪfalse
+				w+=size-r;
+			}
+			if(w!=size){
+				for(int i=w;i<size;i++){
+					elementData[i]=null;// gc
+					size=w;//�����˰�����������
+					modified=true;
+				}
+			}
+		}
+		
+		return modified;
+	}
+
+	@Override
+	public Object get(int index) {
+		rangeCheck(index);
+		return elementData[index];
+	}
+
+	@Override
+	public Object set(int index, Object o) {
+		rangeCheck(index);
+		Object oldValue = elementData[index];
+		elementData[index] = o;
+		return oldValue;
+	}
+
+	@Override
+	public int indexOf(Object o) {
+		// ArrayList����װ��null
+		if (o == null) {
+			for (int i = 0; i < size; i++) {
+				if (elementData[i] == null) {
+					return i;
+				}
+			}
+		} else {
+			for (int i = 0; i < size; i++) {
+				if (o.equals(elementData[i])) {
+					return i;
+				}
+			}
+		}
+		return -1;// û�ҵ�
+	}
+
+	@Override
+	public int lastIndexOf(Object o) {
+		// ArrayList����װ��null
+		if (o == null) {
+			for (int i = size-1; i >= 0; i--) {
+				if (elementData[i] == null) {
+					return i;
+				}
+			}
+		} else {
+			for (int i = size-1; i >= 0; i--) {
+				if (o.equals(elementData[i])) {
+					return i;
+				}
+			}
+		}
+		return -1;// û�ҵ�
+	}
+
+	@Override
+	public Iterator iterator() {
+		return new Itr();
+	}
+
+	@Override
+	public Object[] toArray() {
+		return Arrays.copyOf(elementData, size);//��Ҫֱ�ӷ���elementData
+	}
+
+	@Override
+	public void clear() {
+		for(int i=0; i<size; i++){
+			elementData[i]=null;
+		}
+		size=0;
+	}
+	
+	private class Itr implements Iterator{
+		
+		int cursor;
+		@Override
+		public boolean hasNext() {
+			return cursor!=size;
+		}
+
+		@Override
+		public Object next() {
+			int i=cursor;
+			rangeCheck(i);
+			cursor=i+1;
+			return elementData[i];
+		}
+		
+	}
+
+}
diff --git a/group05/371492887/task_01/src/com/nitasty/util/BinaryTree.java b/group05/371492887/task_01/src/com/nitasty/util/BinaryTree.java
new file mode 100644
index 0000000000..e60ea9141e
--- /dev/null
+++ b/group05/371492887/task_01/src/com/nitasty/util/BinaryTree.java
@@ -0,0 +1,190 @@
+package com.nitasty.util;
+/**
+ * 
+ * @author DYJ  ����д������ʱ���Ҿ���һ������һ���ڲ�ͣ��˵666666
+ *
+ * @param <E> ������ʵ����Comparable����
+ */
+public class BinaryTree<E extends Comparable<? super E>> {
+	
+	private BinaryNode<E> root;
+	
+	public BinaryTree(){
+		this.root=null;
+	}
+	
+	public BinaryTree(BinaryNode root) {
+		this.root = root;
+	}
+
+	public void makeEmpty(){
+		root=null;
+	}
+	
+	public boolean isEmpty(){
+		return root==null;
+	}
+	
+	public int getHeight(){
+		return height(root);
+	}
+
+	public boolean contains(E x){
+		return contains(x,root);
+	}
+
+
+	public <E> E findMin(){
+		if(isEmpty())
+			throw new NullPointerException();//�׸�ʲô��������أ�TODO
+		return (E) findMin(root).data; //ΪʲôҪ��ת�ͣ�
+	}
+	
+
+
+	public <E> E findMax(){
+		if(isEmpty())
+			throw new NullPointerException();//�׸�ʲô��������أ�TODO
+		return (E) findMax(root).data;//ΪʲôҪ��ת�ͣ�
+	}
+
+	public void insert(E x){
+		root=insert(x,root);//ΪɶҪ��root�ӷ���ֵ����Ϊ�ⷽ���ǵݹ��
+	}
+	
+	public void remove(E x){
+		root=remove(x,root);//ΪɶҪ��root�ӷ���ֵ����Ϊ�ⷽ���ǵݹ��
+	}
+	
+	//��ӡ����data
+	public void printTree(){
+		if(isEmpty())
+			System.out.println("Empty tree");
+		else
+			printTree(root);
+	}
+	
+	public void printTreeStructure(){
+		if(isEmpty())
+			System.out.println("Empty tree");
+		else
+			printTreeStructure(root,0);
+	}
+	
+	private void printTreeStructure(BinaryNode<E> t,int i) {
+		StringBuffer buff=new StringBuffer();
+		if(t!=null){
+			for(int j=0;j<i;j++)
+				buff.append("=");
+			System.out.println(buff.append(t.data));
+			printTreeStructure(t.left,i+1);
+			printTreeStructure(t.right,i+1);
+		}
+	}
+
+	private boolean contains(E x, BinaryNode<E> t) {
+		if(t==null)
+			return false;
+		int compareResult=x.compareTo(t.data);
+		
+		if(compareResult<0){
+			return contains(x,t.left);//�ݹ�������������Ƚ�
+		}else if(compareResult>0){
+			return contains(x,t.right);//�ݹ�������������Ƚ�
+		}else{
+			return true;
+		}
+	}
+	
+	private BinaryNode<E> findMin(BinaryNode<E> t) {
+		if(t==null)
+			return null;
+		else if(t.left==null)
+			return t;
+		return findMin(t.left);//�ݹ������С������
+	}
+	private BinaryNode<E> findMax(BinaryNode<E> t) {
+		if(t==null)
+			return null;
+		else if(t.right==null){
+			return t;
+		}
+		return findMax(t.right);//�ݹ�������������
+	}
+	
+	
+	private BinaryNode<E> insert(E x, BinaryNode<E> t) {
+		
+		if(t==null)
+			return new BinaryNode<E>(x);
+		int compareResult=x.compareTo(t.data);
+		if(compareResult<0)
+			t.left=insert(x,t.left);
+		else if(compareResult>0)
+			t.right=insert(x,t.right);
+		else
+			;//�ظ��ˣ���ʱɶ�����ɣ����ԼӸ��ռ������ظ���
+		return t;//����ԭ��������
+	}
+	
+	/**
+	 * ���ү��̫����
+	 * @param x
+	 * @param t
+	 * @return
+	 */
+	private BinaryNode<E> remove(E x, BinaryNode<E> t) {
+		// TODO Auto-generated method stub
+		if(t==null)
+			return t; //x�����ڣ�ɶ������
+		int compareResult=x.compareTo(t.data);
+		
+		if(compareResult<0)
+			t.left=remove(x,t.left);
+		else if(compareResult>0)
+			t.right=remove(x,t.right);
+		else if(t.left!=null && t.right!=null){ //����������
+			t.data=findMin(t.right).data;
+			t.right=remove(t.data,t.right);//������ݹ��ˡ����Ҳ�
+		}
+		else
+			t=(t.left!=null)? t.left:t.right; //ֻ��һ�����ӣ������ӷ���ɾ���Ľڵ㴦��û�к�����Ϊ�գ�������Ҫ���е�������
+		return t; //�ݹ�����
+	}
+	
+	private int height(BinaryNode<E> t){
+		if(t==null)
+			return -1;
+		else
+			return 1+Math.max(height(t.left),height(t.right)); //����ݹ�̫��������ˣ�����
+	}
+	
+	private void printTree(BinaryNode t){//�������
+		if(t!=null){
+			printTree(t.left);
+			System.out.println(t.data);
+			printTree(t.right);
+		}
+	}
+	
+	
+	
+	public static class BinaryNode<E>{
+		private E data;
+		private BinaryNode<E> left;
+		private BinaryNode<E> right;
+
+		//�½��ڵ������data,left,right
+		BinaryNode(E data, BinaryNode<E> left, BinaryNode<E> right) {
+			this.data = data;
+			this.left = left;
+			this.right = right;
+		}
+		
+		//left��right����Ϊnull
+		BinaryNode(E data){
+			this(data, null, null);
+		}
+		
+	}
+}
diff --git a/group05/371492887/task_01/src/com/nitasty/util/BinaryTreeNode.java b/group05/371492887/task_01/src/com/nitasty/util/BinaryTreeNode.java
new file mode 100644
index 0000000000..e04b6f7fed
--- /dev/null
+++ b/group05/371492887/task_01/src/com/nitasty/util/BinaryTreeNode.java
@@ -0,0 +1,43 @@
+package com.nitasty.util;
+
+public class BinaryTreeNode {
+	
+	private Object data;
+	private BinaryTreeNode left;
+	private BinaryTreeNode right;
+	
+	
+	
+	//�½��ڵ������data,left,right(left��right����Ϊnull)
+	public BinaryTreeNode(Object data, BinaryTreeNode left, BinaryTreeNode right) {
+		super();
+		this.data = data;
+		this.left = left;
+		this.right = right;
+	}
+	
+	
+	public Object getData() {
+		return data;
+	}
+	public void setData(Object data) {
+		this.data = data;
+	}
+	public BinaryTreeNode getLeft() {
+		return left;
+	}
+	public void setLeft(BinaryTreeNode left) {
+		this.left = left;
+	}
+	public BinaryTreeNode getRight() {
+		return right;
+	}
+	public void setRight(BinaryTreeNode right) {
+		this.right = right;
+	}
+	
+	public BinaryTreeNode insert(Object o){
+		return  null;
+	}
+	
+}
diff --git a/group05/371492887/task_01/src/com/nitasty/util/Iterator.java b/group05/371492887/task_01/src/com/nitasty/util/Iterator.java
new file mode 100644
index 0000000000..3c51e350bc
--- /dev/null
+++ b/group05/371492887/task_01/src/com/nitasty/util/Iterator.java
@@ -0,0 +1,7 @@
+package com.nitasty.util;
+
+public interface Iterator {
+	public boolean hasNext();
+	public Object next();
+
+}
diff --git a/group05/371492887/task_01/src/com/nitasty/util/LinkedList.java b/group05/371492887/task_01/src/com/nitasty/util/LinkedList.java
new file mode 100644
index 0000000000..3497fdb57f
--- /dev/null
+++ b/group05/371492887/task_01/src/com/nitasty/util/LinkedList.java
@@ -0,0 +1,393 @@
+package com.nitasty.util;
+
+public class LinkedList implements List {
+
+	private Node first;
+
+	private Node last;
+
+	int size = 0;
+
+	public LinkedList() {
+
+	}
+
+	/**
+	 * ��������
+	 * 
+	 * @param index
+	 * @return
+	 */
+	public Node node(int index) {
+		if (index < (size >> 1)) { // ��������ܻ��ǰ�
+			Node x = first;
+			for (int i = 0; i < index; i++) {
+				x = x.next;
+			}
+			return x;
+		} else {
+			Node x = last;
+			for (int i = size-1; i > index; i--) {
+				x = x.prev;
+			}
+			return x;
+		}
+
+	}
+
+	public Object get(int index) {
+		checkElementIndex(index);
+		return node(index).data;
+	}
+
+	public Object remove(int index) {
+		checkElementIndex(index);
+		return (unlink(node(index)));
+	}
+
+	public int size() {
+		return size;
+	}
+
+	public void addFirst(Object o) {
+		final Node f = first;
+		final Node newNode = new Node(null, o, f);
+		first = newNode;
+
+		if (f == null) {
+			last = newNode;
+		} else {
+			f.prev = newNode;
+		}
+		size++;// ������
+	}
+
+	public void addLast(Object o) {
+		final Node l = last;
+		final Node newNode = new Node(l, o, null);
+		last=newNode;
+		if (l == null) {
+			first = newNode;
+		} else {
+			l.next = newNode;
+		}
+		size++;
+	}
+
+	public void addBefore(Object o, Node succ) {
+		final Node pred = succ.prev;
+		final Node newNode = new Node(pred, o, succ);
+		succ.prev = newNode;
+		if (pred == null) {
+			first = newNode;
+		} else {
+			pred.next = newNode;
+		}
+		size++;
+	}
+
+	public void addAfter(Object o, Node succ) {
+		final Node nextd = succ.next;
+		final Node newNode = new Node(succ, o, nextd);
+		succ.next = newNode;
+		if (nextd == null) {
+			last = newNode;
+		} else {
+			nextd.prev = newNode;
+		}
+		size++;
+	}
+
+	private Object unlink(Node n) {
+
+		Object data = n.data;
+		final Node prev = n.prev;
+		final Node next = n.next;
+
+		/* �Լ�д�ľ�����ôbug */
+		// if(n.prev==null){
+		// first=n.next;
+		// }else if(n.next==null){
+		// last=n.prev;
+		// }else {
+		// n.prev.next=n.next;
+		// n.next.prev=n.prev;
+		// }
+		//
+		// n=null;
+
+		if (prev == null) {
+			first = next;
+//			first.prev = null;// Դ��û�����д��� why�� �𣺵� data, prev, ��NullPointException
+								// nextȫΪnullʱ����nodeΪnull��
+		} else {
+			prev.next = next;
+			n.prev = null;
+		}
+
+		if (next == null) {
+			last = prev;
+//			last.next = null;// Դ��û�����д��� why�� ��NullPointException
+		} else {
+			next.prev = prev;
+			n.next = null;
+		}
+
+		n.data = null; // Ϊʲô��ֱ�� node=null���������ν� data, prev, next ��Ϊnull
+		size--; // ע��
+		return data;
+	}
+
+	public Object removeFirst() {// ΪɶԴ���л���Ҫ���� node��
+
+		final Object data = first.data;
+		final Node next = first.next;
+		first = next;
+
+		if (next == null)
+			first = null;
+		else
+			next.prev = null;
+
+		size--;
+		return data;
+	}
+
+	public Object removeLast() {// ΪɶԴ���л���Ҫ���� node��
+
+		final Object data = last.data;
+		final Node prev = last.prev;
+		last = prev;
+
+		if (prev == null)
+			last = null;
+		else
+			prev.next = null;
+
+		size--;
+		return data;
+	}
+
+	private static class Node {
+		Object data;
+		Node next;
+		Node prev;
+
+		Node(Node prev, Object data, Node next) {
+			this.prev = prev;
+			this.data = data;
+			this.next = next;
+		}
+	}
+
+	@Override
+	public boolean isEmpty() {
+		return size == 0;
+	}
+
+	@Override
+	public boolean contains(Object o) {
+		return indexOf(o) >= 0;
+	}
+
+	@Override
+	public boolean add(Object o) {
+		addLast(o);
+		return true;
+	}
+
+	@Override
+	public boolean add(int index, Object o) {
+		checkPositionIndex(index);
+		if (index == size)
+			addLast(o);
+		else
+			addBefore(o, node(index));
+		return true;
+	}
+
+	@Override
+	public boolean addAll(Object[] o) {
+		// add(size,o);
+		// return true;
+
+		return add(size, o);// ����
+	}
+
+	@Override
+	public boolean addAll(int index, Object[] o) {// ͦ���Ѷ�
+		checkPositionIndex(index);
+
+		int numNew = o.length;
+		if (numNew == 0)
+			return false;
+
+		Node pred, succ; // unlink�ڵ��ǰһ�ڵ㼰unlink�ڵ�
+		if (index == size) {
+			succ = null;
+			pred = last;
+		} else {
+			succ = node(index);
+			pred = succ.prev;
+		}
+
+		for (Object data : o) {
+			Node newNode = new Node(pred, data, null);// ���½ڵ�link��ǰһ�ڵ�
+			if (pred == null)
+				first = newNode;
+			else
+				pred.next = newNode;
+			pred = newNode;
+			// size++;
+		}
+
+		if (succ == null) {// link��succ
+			last = pred;
+		} else {
+//			last = succ; // Դ��δ���� why��      succ�ֲ������һ���� ��Ȼ�������ˡ�
+//			succ.next = null; // Դ��δ���� why��
+			pred.next = succ;
+			succ.prev = pred;
+			// size++;
+		}
+
+		size += numNew;
+
+		return true;
+	}
+
+	private String outOfBoundsMsg(int index) {
+		return "Index: " + index + ", Size: " + size;
+	}
+
+	private void checkElementIndex(int index) {
+		if (!isElementIndex(index))
+			throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
+	}
+
+	private void checkPositionIndex(int index) {
+		if (!isElementIndex(index))
+			throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
+	}
+
+	private boolean isElementIndex(int index) {
+		return index >= 0 && index < size;
+	}
+
+	private boolean isPositionIndex(int index) {
+		return index >= 0 && index <= size; // postion�������ӵ����
+	}
+
+	@Override
+	public boolean remove(Object o) {
+
+		return false;
+	}
+
+	@Override
+	public boolean removeAll(List list) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public Object set(int index, Object o) {
+		checkElementIndex(index);
+		Node node=node(index);
+		Object oldValue=node.data;
+		node.data=o;
+		return oldValue;
+	}
+
+	@Override
+	public int indexOf(Object o) {
+		int index = 0;
+		if (o == null) {
+			for (Node x = first; x != null; x = x.next) { // �µ�ѭ����ʽ
+				if (x.data == null)
+					return index;
+				index++;
+			}
+		} else {
+			for (Node x = first; x != null; x = x.next) { // �µ�ѭ����ʽ
+				if (o.equals(x.data))
+					return index;
+				index++;
+			}
+		}
+		return -1;
+	}
+
+	@Override
+	public int lastIndexOf(Object o) {
+		int index = size-1;
+		if (o == null) {
+			for (Node x = last; x != null; x = x.prev) { // �µ�ѭ����ʽ
+				if (x.data == null)
+					return index;
+				index--;
+			}
+		} else {
+			for (Node x = last; x != null; x = x.prev) { // �µ�ѭ����ʽ
+				if (o.equals(x.data))
+					return index;
+				index--;
+			}
+		}
+		return -1;
+	}
+
+	@Override
+	public Object[] toArray() {
+		Object[] elementData = new Object[size];
+		int i = 0;
+		for (Node x = first; x != null; x = x.next) {
+			elementData[i++] = x.data;
+		}
+		return elementData;
+	}
+
+	@Override
+	public void clear() {
+		// bugը��
+		// for(Node x=first;x!=null;x=x.next){
+		// x=null;
+		// }
+
+		for (Node x = first; x != null;) {
+			Node next = x.next;
+			x.prev = null;
+			x.data = null;
+			x.next = null;
+			x = next;
+		}
+		size = 0;
+		first = last = null;
+	}
+	
+	public Iterator iterator(){
+		return new Itr();
+	}
+	
+	private class Itr implements Iterator{
+		private Node lastRetured;
+		private Node next;
+		int cursor;
+		
+		@Override
+		public boolean hasNext() {
+			return cursor<size;
+		}
+
+		@Override
+		public Object next() {
+			checkElementIndex(cursor);
+			next=node(cursor);
+			lastRetured=next;
+			next=next.next;
+			cursor++;
+			return lastRetured.data;
+		}
+		
+	}
+}
diff --git a/group05/371492887/task_01/src/com/nitasty/util/List.java b/group05/371492887/task_01/src/com/nitasty/util/List.java
new file mode 100644
index 0000000000..3c3a0b4c7d
--- /dev/null
+++ b/group05/371492887/task_01/src/com/nitasty/util/List.java
@@ -0,0 +1,46 @@
+package com.nitasty.util;
+
+
+public interface List {
+
+	int size();
+
+	boolean isEmpty();
+
+	boolean contains(Object o);
+
+	boolean add(Object o);
+
+	boolean add(int index, Object o);
+
+	boolean addAll(Object[] o);
+
+	boolean addAll(int index, Object[] o);
+
+	Object remove(int index);
+	
+	boolean remove(Object o);
+
+	boolean removeAll(List list);
+
+	Object get(int index);
+	
+	Object set(int index, Object o);
+	
+	int indexOf(Object o);
+	
+	int lastIndexOf(Object o);
+	
+	Iterator iterator();
+	
+	Object[] toArray();
+	
+	void clear();
+	
+	// boolean containsAll();
+
+	// boolean retainAll(Object[] o);
+
+
+
+}
diff --git a/group05/371492887/task_01/src/com/nitasty/util/Queue.java b/group05/371492887/task_01/src/com/nitasty/util/Queue.java
new file mode 100644
index 0000000000..9cb016e72d
--- /dev/null
+++ b/group05/371492887/task_01/src/com/nitasty/util/Queue.java
@@ -0,0 +1,27 @@
+package com.nitasty.util;
+
+import java.util.EmptyStackException;
+
+public class Queue {
+	
+	LinkedList elementData=new LinkedList();
+	
+	public void enQueue(Object o){
+		elementData.add(o);
+	}
+	
+	public Object deQueue(){
+		int len=elementData.size();
+		if(len==0)
+			throw new EmptyStackException();// TODO ȷ����ӦException����
+		return elementData.removeFirst();
+	}
+	
+	public boolean isEmpty(){
+		return elementData.size()==0;
+	}
+	
+	public int size(){
+		return elementData.size();
+	}
+}
diff --git a/group05/371492887/task_01/src/com/nitasty/util/Stack.java b/group05/371492887/task_01/src/com/nitasty/util/Stack.java
new file mode 100644
index 0000000000..18bfa56d97
--- /dev/null
+++ b/group05/371492887/task_01/src/com/nitasty/util/Stack.java
@@ -0,0 +1,31 @@
+package com.nitasty.util;
+
+import java.util.EmptyStackException;
+
+public class Stack {
+	private ArrayList elementData = new ArrayList();
+	
+	public void push(Object o){	
+		elementData.add(o);
+	}
+	
+	public Object pop(){
+		int len=elementData.size();
+		if(len==0)
+			throw new EmptyStackException();
+		return elementData.remove(len-1);
+	}
+	
+	public Object peek(){
+		int len=elementData.size();
+		if(len==0)
+			throw new EmptyStackException();
+		return elementData.get(len-1);
+	}
+	public boolean isEmpty(){
+		return elementData.size()==0;
+	}
+	public int size(){
+		return elementData.size();
+	}
+}

From 5be4d8f3992fc02296c60e3496b2792517b445ad Mon Sep 17 00:00:00 2001
From: nitasty <nitasty@163.com>
Date: Sun, 26 Feb 2017 16:20:28 +0800
Subject: [PATCH 10/31] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 coding2017-1                         |  1 +
 group05/371492887/task_01/.classpath |  7 +++++++
 group05/371492887/task_01/.gitignore |  1 +
 group05/371492887/task_01/.project   | 17 +++++++++++++++++
 4 files changed, 26 insertions(+)
 create mode 160000 coding2017-1
 create mode 100644 group05/371492887/task_01/.classpath
 create mode 100644 group05/371492887/task_01/.gitignore
 create mode 100644 group05/371492887/task_01/.project

diff --git a/coding2017-1 b/coding2017-1
new file mode 160000
index 0000000000..b5be7e853c
--- /dev/null
+++ b/coding2017-1
@@ -0,0 +1 @@
+Subproject commit b5be7e853cd9d2f5bbcc43149dc4df83749759a2
diff --git a/group05/371492887/task_01/.classpath b/group05/371492887/task_01/.classpath
new file mode 100644
index 0000000000..2d7497573f
--- /dev/null
+++ b/group05/371492887/task_01/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/group05/371492887/task_01/.gitignore b/group05/371492887/task_01/.gitignore
new file mode 100644
index 0000000000..ae3c172604
--- /dev/null
+++ b/group05/371492887/task_01/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/group05/371492887/task_01/.project b/group05/371492887/task_01/.project
new file mode 100644
index 0000000000..eca593c703
--- /dev/null
+++ b/group05/371492887/task_01/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>task_01</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

From e978f24e217323f33e9320f2ba1f8e75e3050144 Mon Sep 17 00:00:00 2001
From: nitasty <nitasty@163.com>
Date: Sun, 26 Feb 2017 16:23:33 +0800
Subject: [PATCH 11/31] test

---
 .../371492887/task_01/src/com/nitasty/test/ArrayListTest.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/group05/371492887/task_01/src/com/nitasty/test/ArrayListTest.java b/group05/371492887/task_01/src/com/nitasty/test/ArrayListTest.java
index 907302f3c1..848b4fafe9 100644
--- a/group05/371492887/task_01/src/com/nitasty/test/ArrayListTest.java
+++ b/group05/371492887/task_01/src/com/nitasty/test/ArrayListTest.java
@@ -17,7 +17,7 @@ public class ArrayListTest {
 	public void init(){
 		list=new ArrayList();
 		for (int i = 0; i < 100; i++) {
-			list.add(i);
+			list.add(i); 
 		}
 	}
 	

From 061e00c34520bee767c75ce29501fece42754dc0 Mon Sep 17 00:00:00 2001
From: zhanglifeng <284422826@qq.com>
Date: Sun, 26 Feb 2017 21:40:28 +0800
Subject: [PATCH 12/31] =?UTF-8?q?=E5=AE=9E=E7=8E=B0ArrayList=E7=AD=89?=
 =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 group05/284422826/.gitignore                  |   9 +
 .../coding2017/basic/ArrayList.java           | 132 ++++++++++++++
 .../coding2017/basic/BinaryTreeNode.java      |  37 ++++
 .../coding2017/basic/Iterator.java            |   7 +
 .../coding2017/basic/LinkedList.java          | 168 ++++++++++++++++++
 .../zhanglifeng/coding2017/basic/List.java    |   9 +
 .../zhanglifeng/coding2017/basic/Queue.java   |  20 +++
 .../zhanglifeng/coding2017/basic/Stack.java   |  23 +++
 8 files changed, 405 insertions(+)
 create mode 100644 group05/284422826/.gitignore
 create mode 100644 group05/284422826/src/com/github/zhanglifeng/coding2017/basic/ArrayList.java
 create mode 100644 group05/284422826/src/com/github/zhanglifeng/coding2017/basic/BinaryTreeNode.java
 create mode 100644 group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Iterator.java
 create mode 100644 group05/284422826/src/com/github/zhanglifeng/coding2017/basic/LinkedList.java
 create mode 100644 group05/284422826/src/com/github/zhanglifeng/coding2017/basic/List.java
 create mode 100644 group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Queue.java
 create mode 100644 group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Stack.java

diff --git a/group05/284422826/.gitignore b/group05/284422826/.gitignore
new file mode 100644
index 0000000000..0aca6d5fe8
--- /dev/null
+++ b/group05/284422826/.gitignore
@@ -0,0 +1,9 @@
+/bin/
+*.class
+*.settings
+*.project
+*.classpath
+*/.settings
+*.iml
+/.idea
+/**/target/**/*
\ No newline at end of file
diff --git a/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/ArrayList.java b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/ArrayList.java
new file mode 100644
index 0000000000..e0fefc0ab9
--- /dev/null
+++ b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/ArrayList.java
@@ -0,0 +1,132 @@
+package com.github.zhanglifeng.coding2017.basic;
+
+import java.util.*;
+
+/**
+ * 功能：实现ArrayList.
+ * @author zhanglifeng.
+ */
+public class ArrayList implements List {
+	private int size = 0;  //当前数组大小
+
+	private Object[] elementData = new Object[5];  //初始数组
+
+	/**
+	 * 将对象o添加到ArrayList中.
+	 * @param o:需要添加的对象.
+	 */
+	public void add(Object o) {
+		ensureCapacity(size + 1);  //确保数组的容量可以装的下size + 1个元素，如果不够则扩容
+
+		elementData[size] = o;  //将o添加到数组中
+		size++;  //数组大小增加1
+	}	
+
+	/**
+	 * 将对象o添加到ArrayList的指定位置.
+	 * @param index: 指定位置.
+	 * @param o: 需要添加的对象.
+	 */
+	public void add(int index, Object o) {
+		rangeCheck(index);   //判断指定的位置index是否合法
+
+		ensureCapacity(size + 1); //确保数组的容量可以装的下size + 1个元素，如果不够则扩容
+
+		System.arraycopy(elementData, index, elementData, index + 1, size - index); //将index位置到结束位置所有的数组往后移动一个位置
+		elementData[index] = o; //将对象o添加到index位置
+		size++;//数组大小增加1
+	}
+
+	public Object get(int index) {
+		rangeCheck(index);
+		return elementData[index];
+	}
+
+	public Object remove(int index) {		
+		rangeCheck(index);
+		
+		if (index != elementData.length - 1) {
+			System.arraycopy(elementData, index + 1, elementData, index, size - 1 - index);
+		}
+
+		size--;
+		return elementData;
+	}
+
+	public int size() {
+		return size;
+	}
+
+	public Iterator iterator() {
+		return new ArrayListIterator(this);
+	}
+	
+	private void ensureCapacity(int number) {
+		if (number > elementData.length) {
+			elementData = grow(elementData, 1);
+		}
+	}
+
+	public Object[] grow(Object[] src, int step) {
+		Object[] target = new Object[src.length + step];
+		System.arraycopy(src, 0, target, 0, src.length);
+		return target;
+	}
+	
+	public void rangeCheck(int index){
+		if (index > size || index < 0) {
+			throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
+		}
+	}
+
+	private class ArrayListIterator implements Iterator {
+		ArrayList arrayList = null;
+		int current = 0;
+
+		private ArrayListIterator(ArrayList arrayList) {
+			this.arrayList = arrayList;
+		}
+
+		@Override
+		public boolean hasNext() {
+			current++;
+			return current > arrayList.size() ? false : true;
+		}
+
+		@Override
+		public Object next() {
+			return elementData[current];
+		}
+
+	}
+
+	public static void main(String[] args) {
+		ArrayList arrayList = new ArrayList();
+		arrayList.add("s1");
+		arrayList.add("s2");
+		arrayList.add("s3");
+		arrayList.add("s4");
+		arrayList.add(3, "s33");
+		arrayList.add("s5");
+
+		System.out.println(arrayList.size());
+
+		System.out.println(arrayList.get(2));
+
+		arrayList.remove(3);
+
+		System.out.println(arrayList.size());
+
+		arrayList.add("s1");
+		System.out.println(arrayList.size());
+		arrayList.remove(5);
+		System.out.println(arrayList.size());
+		
+		Iterator it = arrayList.iterator();
+		while(it.hasNext()){
+			System.out.print(it.next() + " ");
+		}
+		System.out.println();
+	}
+
+}
diff --git a/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/BinaryTreeNode.java b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/BinaryTreeNode.java
new file mode 100644
index 0000000000..772f30c092
--- /dev/null
+++ b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/BinaryTreeNode.java
@@ -0,0 +1,37 @@
+package com.github.zhanglifeng.coding2017.basic;
+
+public class BinaryTreeNode {
+	private Object data;
+	private BinaryTreeNode left;
+	private BinaryTreeNode right;
+
+	public BinaryTreeNode(Object data) {
+		this.data = data;
+		left = null;
+		right = null;
+	}
+
+	public Object getData() {
+		return this.data;
+	}
+	public void setData(Object data) {
+		this.data = data;
+	}
+	public BinaryTreeNode getLeft() {
+		return this.left;
+	}
+	public void setLeft(BinaryTreeNode left) {
+		this.left = left;
+	}
+	public BinaryTreeNode getRight() {
+		return this.right;
+	}
+	public void setRight(BinaryTreeNode right) {
+		this.right = right;
+	}
+	
+	public BinaryTreeNode insert(Object o){
+		return  null;
+	}
+	
+}
diff --git a/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Iterator.java b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Iterator.java
new file mode 100644
index 0000000000..288204f51f
--- /dev/null
+++ b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Iterator.java
@@ -0,0 +1,7 @@
+package com.github.zhanglifeng.coding2017.basic;
+
+public interface Iterator {
+	public boolean hasNext();
+	public Object next();
+
+}
diff --git a/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/LinkedList.java b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/LinkedList.java
new file mode 100644
index 0000000000..c93a677bfd
--- /dev/null
+++ b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/LinkedList.java
@@ -0,0 +1,168 @@
+package com.github.zhanglifeng.coding2017.basic;
+
+import java.util.NoSuchElementException;
+
+/**
+ * 功能：实现LinkedList.
+ * @author zhanglifeng.
+ */
+public class LinkedList implements List {
+	private Node head, tail;
+	private int size;
+
+	private Node getNodeByIndex(int index) {
+		if (index < 0 || index > size - 1) {
+			throw new IndexOutOfBoundsException("线性表索引越界");
+		}
+		Node current = head;
+		for (int i = 0; i < size && current != null; i++, current = current.next) {
+			if (i == index) {
+				return current;
+			}
+		}
+		return null;
+	}
+
+	public void add(Object o) {
+		addLast(o);
+	}
+
+	public void add(int index, Object o) {
+		if (index < 0 || index > size) {
+			throw new IndexOutOfBoundsException("线性表索引越界");
+		}
+
+		if (0 == index) {
+			addFirst(o);
+		}else{			
+			Node node = getNodeByIndex(index - 1);
+			node.next = new Node(o, node.next);
+			size ++;
+		}
+	}
+
+	public Object get(int index) {
+		return getNodeByIndex(index).data;
+	}
+
+	public Object remove(int index) {
+		if (index < 0 || index > size - 1) {
+			throw new IndexOutOfBoundsException("线性表索引越界");
+		}
+
+		if(0 == index){
+			return removeFirst();
+		}else if(size - 1 == index){
+			return removeLast();
+		}else{
+			Node node = getNodeByIndex(index);
+			Node preNode = getNodeByIndex(index - 1);
+			preNode.next = node.next;
+			size --;
+			return node.data;
+		}
+	}
+
+	public int size() {
+		return size;
+	}
+
+	public void addFirst(Object o) {
+		Node currentHead = head;
+		Node newNode = new Node(o, currentHead);
+		head = newNode;
+		if(currentHead == null){
+			tail = newNode;
+		}
+
+		size++;
+	}
+
+	public void addLast(Object o) {
+		Node currentTail = tail;
+		Node newNode = new Node(o, null);
+		tail = newNode;
+		if(currentTail == null){
+			head = newNode;
+		}else {
+			currentTail.next = newNode;
+		}
+		size++;
+	}
+
+	public Object removeFirst() {
+		if(head == null){
+			throw new NoSuchElementException();
+		}
+		Node node = new Node(head.data, null);
+		head = head.next;
+		size --;
+		return node.data;
+	}
+
+	public Object removeLast() {
+		if(tail == null){
+			throw new NoSuchElementException();
+		}
+		Node node = getNodeByIndex(size - 1);
+		node.next = null;
+		size --;
+		return node.data;
+	}
+
+	public Iterator iterator() {
+		return new LinkedListIterator(this);
+	}
+
+	private static class Node {
+		Object data;
+		Node next;
+
+		public Node(Object data, Node next) {
+			this.data = data;
+			this.next = next;
+		}
+	}
+
+	private class LinkedListIterator implements Iterator {
+		LinkedList linkedList = null;
+		private int current = 0;
+
+		public LinkedListIterator(LinkedList linkedList) {
+			this.linkedList = linkedList;
+		}
+
+		@Override
+		public boolean hasNext() {
+			return current < size;
+		}
+
+		@Override
+		public Object next() {
+			return linkedList.get(current ++);
+		}
+	}
+
+	public static void main(String[] args) {
+		LinkedList linkedList = new LinkedList();
+		linkedList.add("s1");
+		linkedList.add("s2");
+		linkedList.add("s3");
+		linkedList.addFirst("s0");
+		linkedList.addLast("s4");
+
+		Iterator it = linkedList.iterator();
+		while(it.hasNext()){
+			System.out.print(it.next() + " ");
+		}
+		System.out.println();
+		System.out.println("第3个元素：" + linkedList.get(3));
+
+		System.out.println(linkedList.removeFirst());
+		System.out.println(linkedList.size());
+		System.out.println("Last element:" + linkedList.removeLast());
+		System.out.println(linkedList.size());
+		System.out.println("第2个元素：" + linkedList.remove(2));
+		System.out.println(linkedList.size());
+	}
+}
diff --git a/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/List.java b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/List.java
new file mode 100644
index 0000000000..e6f5743399
--- /dev/null
+++ b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/List.java
@@ -0,0 +1,9 @@
+package com.github.zhanglifeng.coding2017.basic;
+
+public interface List {
+	public void add(Object o);
+	public void add(int index, Object o);
+	public Object get(int index);
+	public Object remove(int index);
+	public int size();
+}
diff --git a/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Queue.java b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Queue.java
new file mode 100644
index 0000000000..39b9e4e98b
--- /dev/null
+++ b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Queue.java
@@ -0,0 +1,20 @@
+package com.github.zhanglifeng.coding2017.basic;
+
+public class Queue {
+	private LinkedList elementData = new LinkedList();
+	public void enQueue(Object o){
+		elementData.add(o);
+	}
+	
+	public Object deQueue(){
+		return elementData.removeFirst();
+	}
+	
+	public boolean isEmpty(){
+		return elementData.size() == 0;
+	}
+	
+	public int size(){
+		return elementData.size();
+	}
+}
diff --git a/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Stack.java b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Stack.java
new file mode 100644
index 0000000000..ba642a8c77
--- /dev/null
+++ b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Stack.java
@@ -0,0 +1,23 @@
+package com.github.zhanglifeng.coding2017.basic;
+
+public class Stack {
+	private ArrayList elementData = new ArrayList();
+	
+	public void push(Object o){
+		elementData.add(0);
+	}
+	
+	public Object pop(){
+		return elementData.remove(elementData.size() - 1);
+	}
+	
+	public Object peek(){
+		return elementData.get(elementData.size() - 1);
+	}
+	public boolean isEmpty(){
+		return elementData.size() == 0;
+	}
+	public int size(){
+		return elementData.size();
+	}
+}

From 54db23ef96296b2361f10c46b3a0d319738a4e3e Mon Sep 17 00:00:00 2001
From: ZhaoHongxin <zhaohongxin621@126.com>
Date: Sun, 26 Feb 2017 22:29:50 +0800
Subject: [PATCH 13/31] a

---
 .../basic/.gitignore                          |  0
 .../basic/ArrayListTest.java                  | 12 ++++++--
 .../basic/BinaryTreeNode.java                 |  2 +-
 .../basic/Iterator.java                       |  2 +-
 .../basic/LinkedList.java                     | 17 +++++++----
 .../basic/LinkedListTest.java                 |  6 +++-
 .../basic/List.java                           |  3 +-
 .../test01/src/com/coding/basic/Queue.java    | 25 +++++++++++++++++
 .../src/com/coding/basic/QueueTest.java       | 26 +++++++++++++++++
 .../test01/src/com/coding/basic/Stack.java    | 28 +++++++++++++++++++
 .../src/com/coding/basic/StackTest.java       | 26 +++++++++++++++++
 .../src/com/coding1094051862/basic/Queue.java | 19 -------------
 .../src/com/coding1094051862/basic/Stack.java | 22 ---------------
 13 files changed, 136 insertions(+), 52 deletions(-)
 rename group05/1094051862/test01/src/com/{coding1094051862 => coding}/basic/.gitignore (100%)
 rename group05/1094051862/test01/src/com/{coding1094051862 => coding}/basic/ArrayListTest.java (58%)
 rename group05/1094051862/test01/src/com/{coding1094051862 => coding}/basic/BinaryTreeNode.java (93%)
 rename group05/1094051862/test01/src/com/{coding1094051862 => coding}/basic/Iterator.java (69%)
 rename group05/1094051862/test01/src/com/{coding1094051862 => coding}/basic/LinkedList.java (89%)
 rename group05/1094051862/test01/src/com/{coding1094051862 => coding}/basic/LinkedListTest.java (82%)
 rename group05/1094051862/test01/src/com/{coding1094051862 => coding}/basic/List.java (76%)
 create mode 100644 group05/1094051862/test01/src/com/coding/basic/Queue.java
 create mode 100644 group05/1094051862/test01/src/com/coding/basic/QueueTest.java
 create mode 100644 group05/1094051862/test01/src/com/coding/basic/Stack.java
 create mode 100644 group05/1094051862/test01/src/com/coding/basic/StackTest.java
 delete mode 100644 group05/1094051862/test01/src/com/coding1094051862/basic/Queue.java
 delete mode 100644 group05/1094051862/test01/src/com/coding1094051862/basic/Stack.java

diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/.gitignore b/group05/1094051862/test01/src/com/coding/basic/.gitignore
similarity index 100%
rename from group05/1094051862/test01/src/com/coding1094051862/basic/.gitignore
rename to group05/1094051862/test01/src/com/coding/basic/.gitignore
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/ArrayListTest.java b/group05/1094051862/test01/src/com/coding/basic/ArrayListTest.java
similarity index 58%
rename from group05/1094051862/test01/src/com/coding1094051862/basic/ArrayListTest.java
rename to group05/1094051862/test01/src/com/coding/basic/ArrayListTest.java
index 6345b9c57e..8a5875427e 100644
--- a/group05/1094051862/test01/src/com/coding1094051862/basic/ArrayListTest.java
+++ b/group05/1094051862/test01/src/com/coding/basic/ArrayListTest.java
@@ -1,4 +1,4 @@
-package com.coding1094051862.basic;
+package com.coding.basic;
 
 import org.junit.Assert;
 import org.junit.Test;
@@ -7,7 +7,7 @@ public class ArrayListTest {
 
 	@Test
 	public void test() {
-		ArrayList list = new ArrayList();
+		List list = new ArrayList();
 		for(int i = 0; i < 10; i++) {
 			list.add(i);
 		}
@@ -18,6 +18,14 @@ public void test() {
 		Assert.assertEquals(12, list.size());
 		Assert.assertEquals(99, list.remove(3));
 		Assert.assertEquals(11, list.size());
+		Iterator iterator = list.iterator();
+		for (int i = 0; i< list.size(); i++) {
+			System.out.println(list.get(i));
+		}
+		System.out.println("======");
+		while (iterator.hasNext()) {
+			System.out.println(iterator.next());
+		}
 	}
 
 }
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/BinaryTreeNode.java b/group05/1094051862/test01/src/com/coding/basic/BinaryTreeNode.java
similarity index 93%
rename from group05/1094051862/test01/src/com/coding1094051862/basic/BinaryTreeNode.java
rename to group05/1094051862/test01/src/com/coding/basic/BinaryTreeNode.java
index 09d35349b8..d7ac820192 100644
--- a/group05/1094051862/test01/src/com/coding1094051862/basic/BinaryTreeNode.java
+++ b/group05/1094051862/test01/src/com/coding/basic/BinaryTreeNode.java
@@ -1,4 +1,4 @@
-package com.coding1094051862.basic;
+package com.coding.basic;
 
 public class BinaryTreeNode {
 	
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/Iterator.java b/group05/1094051862/test01/src/com/coding/basic/Iterator.java
similarity index 69%
rename from group05/1094051862/test01/src/com/coding1094051862/basic/Iterator.java
rename to group05/1094051862/test01/src/com/coding/basic/Iterator.java
index 33dcc89a6a..06ef6311b2 100644
--- a/group05/1094051862/test01/src/com/coding1094051862/basic/Iterator.java
+++ b/group05/1094051862/test01/src/com/coding/basic/Iterator.java
@@ -1,4 +1,4 @@
-package com.coding1094051862.basic;
+package com.coding.basic;
 
 public interface Iterator {
 	public boolean hasNext();
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/LinkedList.java b/group05/1094051862/test01/src/com/coding/basic/LinkedList.java
similarity index 89%
rename from group05/1094051862/test01/src/com/coding1094051862/basic/LinkedList.java
rename to group05/1094051862/test01/src/com/coding/basic/LinkedList.java
index ea3b54241b..4ef910fc16 100644
--- a/group05/1094051862/test01/src/com/coding1094051862/basic/LinkedList.java
+++ b/group05/1094051862/test01/src/com/coding/basic/LinkedList.java
@@ -1,4 +1,4 @@
-package com.coding1094051862.basic;
+package com.coding.basic;
 
 public class LinkedList implements List {
 	
@@ -114,16 +114,23 @@ public Object removeLast(){
 	}
 	public Iterator iterator(){
 		return new Iterator() {
+			int cusor = 0;
+			Node current = head;
 			@Override
 			public Object next() {
-				// TODO Auto-generated method stub
-				return null;
+				if (!hasNext()) {
+					System.out.println("next : !hasNext");
+					return null;
+				}
+				Object o = current.data;
+				current = current.next;
+				cusor ++;
+				return o;
 			}
 			
 			@Override
 			public boolean hasNext() {
-				// TODO Auto-generated method stub
-				return false;
+				return cusor < size;
 			}
 		};
 	}
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/LinkedListTest.java b/group05/1094051862/test01/src/com/coding/basic/LinkedListTest.java
similarity index 82%
rename from group05/1094051862/test01/src/com/coding1094051862/basic/LinkedListTest.java
rename to group05/1094051862/test01/src/com/coding/basic/LinkedListTest.java
index dccc8e1e86..ca269f7d9f 100644
--- a/group05/1094051862/test01/src/com/coding1094051862/basic/LinkedListTest.java
+++ b/group05/1094051862/test01/src/com/coding/basic/LinkedListTest.java
@@ -1,4 +1,4 @@
-package com.coding1094051862.basic;
+package com.coding.basic;
 
 import junit.framework.Assert;
 
@@ -27,6 +27,10 @@ public void test() {
 		Assert.assertEquals(3, list.get(5));
 		Assert.assertEquals(4, list.get(6));
 		Assert.assertEquals(800, list.get(8));
+		Iterator iterator = list.iterator();
+		while (iterator.hasNext()) {
+			System.out.println(iterator.next());
+		}
 	}
 
 }
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/List.java b/group05/1094051862/test01/src/com/coding/basic/List.java
similarity index 76%
rename from group05/1094051862/test01/src/com/coding1094051862/basic/List.java
rename to group05/1094051862/test01/src/com/coding/basic/List.java
index 7f1430b67b..ef939ae2cc 100644
--- a/group05/1094051862/test01/src/com/coding1094051862/basic/List.java
+++ b/group05/1094051862/test01/src/com/coding/basic/List.java
@@ -1,4 +1,4 @@
-package com.coding1094051862.basic;
+package com.coding.basic;
 
 public interface List {
 	public void add(Object o);
@@ -6,4 +6,5 @@ public interface List {
 	public Object get(int index);
 	public Object remove(int index);
 	public int size();
+	public Iterator iterator();
 }
diff --git a/group05/1094051862/test01/src/com/coding/basic/Queue.java b/group05/1094051862/test01/src/com/coding/basic/Queue.java
new file mode 100644
index 0000000000..b65d01ab8e
--- /dev/null
+++ b/group05/1094051862/test01/src/com/coding/basic/Queue.java
@@ -0,0 +1,25 @@
+package com.coding.basic;
+
+public class Queue {
+	private List list = new ArrayList();
+	private int size = 0;
+	public void enQueue(Object o){		
+		list.add(o);
+		size ++;
+	}
+	
+	public Object deQueue(){
+		if (size == 0)
+			return null;
+		size --;
+		return list.remove(0);
+	}
+	
+	public boolean isEmpty(){
+		return size == 0;
+	}
+	
+	public int size(){
+		return size;
+	}
+}
diff --git a/group05/1094051862/test01/src/com/coding/basic/QueueTest.java b/group05/1094051862/test01/src/com/coding/basic/QueueTest.java
new file mode 100644
index 0000000000..f75beb397f
--- /dev/null
+++ b/group05/1094051862/test01/src/com/coding/basic/QueueTest.java
@@ -0,0 +1,26 @@
+package com.coding.basic;
+
+import static org.junit.Assert.*;
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+import sun.org.mozilla.javascript.internal.ast.NewExpression;
+
+public class QueueTest {
+
+	@Test
+	public void test() {
+		Queue queue = new Queue();
+		for (int i = 0; i < 100; i++) {
+			queue.enQueue(i);
+		}
+		Assert.assertEquals(100, queue.size());
+		for (int i = 0; i < 100; i++) {
+			Assert.assertEquals(i, queue.deQueue());
+		}
+		Assert.assertEquals(0, queue.size());
+		
+	}
+	
+}
diff --git a/group05/1094051862/test01/src/com/coding/basic/Stack.java b/group05/1094051862/test01/src/com/coding/basic/Stack.java
new file mode 100644
index 0000000000..7fabb3494f
--- /dev/null
+++ b/group05/1094051862/test01/src/com/coding/basic/Stack.java
@@ -0,0 +1,28 @@
+package com.coding.basic;
+
+public class Stack {
+	private List elementData = new ArrayList();
+	private int size = 0;
+	public void push(Object o){		
+		elementData.add(o);
+		size ++;
+	}
+	
+	public Object pop(){
+		if (size == 0)
+			return null;
+		return elementData.remove(--size);
+	}
+	
+	public Object peek(){
+		if (size == 0)
+			return null;
+		return elementData.get(size - 1);
+	}
+	public boolean isEmpty(){
+		return size == 0;
+	}
+	public int size(){
+		return size;
+	}
+}
diff --git a/group05/1094051862/test01/src/com/coding/basic/StackTest.java b/group05/1094051862/test01/src/com/coding/basic/StackTest.java
new file mode 100644
index 0000000000..adcb2c6522
--- /dev/null
+++ b/group05/1094051862/test01/src/com/coding/basic/StackTest.java
@@ -0,0 +1,26 @@
+package com.coding.basic;
+
+import static org.junit.Assert.*;
+import junit.framework.Assert;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class StackTest {
+
+	@Test
+	public void test() {
+		Stack stack = new Stack();
+		for (int i = 0; i < 100; i++) {
+			stack.push(i);
+		}
+		Assert.assertEquals(100, stack.size());
+		Assert.assertEquals(99, stack.pop());
+		for (int i = 98; i >= 0; i--) {
+			Assert.assertEquals(i, stack.peek());
+			Assert.assertEquals(i, stack.pop());
+		}
+		Assert.assertEquals(0, stack.size());
+	}
+
+}
diff --git a/group05/1094051862/test01/src/com/coding1094051862/basic/Queue.java b/group05/1094051862/test01/src/com/coding1094051862/basic/Queue.java
deleted file mode 100644
index fb9f6107fd..0000000000
--- a/group05/1094051862/test01/src/com/coding1094051862/basic/Queue.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.coding1094051862.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/group05/1094051862/test01/src/com/coding1094051862/basic/Stack.java b/group05/1094051862/test01/src/com/coding1094051862/basic/Stack.java
deleted file mode 100644
index a9fbb4635b..0000000000
--- a/group05/1094051862/test01/src/com/coding1094051862/basic/Stack.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.coding1094051862.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;
-	}
-}

From 2466967ef16be7bacd8db66a490e4a5951fe5903 Mon Sep 17 00:00:00 2001
From: zhanglifeng <284422826@qq.com>
Date: Sun, 26 Feb 2017 22:34:21 +0800
Subject: [PATCH 14/31] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=98=9F=E5=88=97?=
 =?UTF-8?q?=E5=92=8C=E6=A0=88=E7=9A=84=E8=B6=8A=E7=95=8C=E6=A3=80=E6=9F=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../com/github/zhanglifeng/coding2017/basic/Queue.java    | 5 +++++
 .../com/github/zhanglifeng/coding2017/basic/Stack.java    | 8 ++++++++
 2 files changed, 13 insertions(+)

diff --git a/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Queue.java b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Queue.java
index 39b9e4e98b..42ef512321 100644
--- a/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Queue.java
+++ b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Queue.java
@@ -1,5 +1,7 @@
 package com.github.zhanglifeng.coding2017.basic;
 
+import java.util.EmptyStackException;
+
 public class Queue {
 	private LinkedList elementData = new LinkedList();
 	public void enQueue(Object o){
@@ -7,6 +9,9 @@ public void enQueue(Object o){
 	}
 	
 	public Object deQueue(){
+		if (elementData.size() == 0) {
+			throw new EmptyStackException();
+		}
 		return elementData.removeFirst();
 	}
 	
diff --git a/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Stack.java b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Stack.java
index ba642a8c77..0761bdd9e7 100644
--- a/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Stack.java
+++ b/group05/284422826/src/com/github/zhanglifeng/coding2017/basic/Stack.java
@@ -1,5 +1,7 @@
 package com.github.zhanglifeng.coding2017.basic;
 
+import java.util.EmptyStackException;
+
 public class Stack {
 	private ArrayList elementData = new ArrayList();
 	
@@ -8,10 +10,16 @@ public void push(Object o){
 	}
 	
 	public Object pop(){
+		if (elementData.size() == 0) {
+			throw new EmptyStackException();
+		}
 		return elementData.remove(elementData.size() - 1);
 	}
 	
 	public Object peek(){
+		if (elementData.size() == 0) {
+			throw new EmptyStackException();
+		}
 		return elementData.get(elementData.size() - 1);
 	}
 	public boolean isEmpty(){

From 64bae7c49104a49344f6c2ea37f788422e0592b4 Mon Sep 17 00:00:00 2001
From: ZhaoHongxin <zhaohongxin621@126.com>
Date: Sun, 26 Feb 2017 22:34:38 +0800
Subject: [PATCH 15/31] arraylist

---
 .../src/com/coding/basic/ArrayList.java       | 79 +++++++++++++++++++
 1 file changed, 79 insertions(+)
 create mode 100644 group05/1094051862/test01/src/com/coding/basic/ArrayList.java

diff --git a/group05/1094051862/test01/src/com/coding/basic/ArrayList.java b/group05/1094051862/test01/src/com/coding/basic/ArrayList.java
new file mode 100644
index 0000000000..af757a217e
--- /dev/null
+++ b/group05/1094051862/test01/src/com/coding/basic/ArrayList.java
@@ -0,0 +1,79 @@
+package com.coding.basic;
+
+import java.util.Arrays;
+
+public class ArrayList implements List {
+	
+	private int size = 0;
+	
+	private Object[] elementData = new Object[10];
+	
+	private int increaseSize = 3;
+	private void increaseArray() {
+		Object[] newData = Arrays.copyOf(elementData, elementData.length + increaseSize);
+		elementData = newData;
+	}
+	public void add(Object o){
+		if (size == elementData.length) {
+			increaseArray();
+			elementData[size++] = o;
+		} else {
+			elementData[size++] = o;
+		}
+	}
+	public void add(int index, Object o){
+		if (index < 0 || index > size) {
+			System.out.println("错误提示：index > size || index < 0");
+			return;
+		}
+		Object temp;
+		for (int i = index; i < size; i++) {
+			temp = elementData[i];
+			elementData[i] = o;
+			o = temp;
+		}
+		elementData[size ++] = o;
+	}
+	
+	public Object get(int index){
+		if (index < 0 || index > size ){
+			return null;
+		}
+		return elementData[index];
+	}
+	
+	public Object remove(int index){
+		if (index < 0 || index > size ){
+			return null;
+		}
+		Object result = elementData[index];
+		for (int i = index; i < size-1; i++) {
+			elementData[i] = elementData[i + 1];
+		}
+		elementData[size-1] = null;
+		size --;
+		return result;
+	}
+	
+	public int size(){
+		return size;
+	}
+	
+	public Iterator iterator(){
+		return new Iterator() {
+			private int cusor = 0;
+			@Override
+			public Object next() {
+				if (!hasNext()) {
+					System.out.println("next: !hasNext");
+					return null;
+				}
+				return elementData[cusor ++];
+			}
+			@Override
+			public boolean hasNext() {
+				return cusor < size;
+			}
+		};
+	}
+}

From 079d6c4d84964491856f51e518026bafd1aa926b Mon Sep 17 00:00:00 2001
From: ZhaoHongxin <zhaohongxin621@126.com>
Date: Sun, 26 Feb 2017 22:41:53 +0800
Subject: [PATCH 16/31] empty gitignore

---
 group05/1094051862/test01/src/com/coding/basic/.gitignore | 1 -
 1 file changed, 1 deletion(-)

diff --git a/group05/1094051862/test01/src/com/coding/basic/.gitignore b/group05/1094051862/test01/src/com/coding/basic/.gitignore
index 709f74c2f7..e69de29bb2 100644
--- a/group05/1094051862/test01/src/com/coding/basic/.gitignore
+++ b/group05/1094051862/test01/src/com/coding/basic/.gitignore
@@ -1 +0,0 @@
-/ArrayList.java

From 8f1a3ae50056684330844e2a201e2c2d0d839c2a Mon Sep 17 00:00:00 2001
From: xiaoqin0000 <xiaoqin0000@gmail.com>
Date: Sun, 26 Feb 2017 23:10:57 +0800
Subject: [PATCH 17/31] add impl

---
 .../job_2017_02_19_data_structure/.gitignore  |   3 +-
 .../.idea/workspace.xml                       | 448 ++++++++++++++----
 .../src/com/java/xiaoqin/Main.java            |  36 ++
 .../com/java/xiaoqin/impl/ArrayListImpl.java  |   5 +
 .../com/java/xiaoqin/impl/BinaryTreeNode.java |  82 ++++
 .../com/java/xiaoqin/impl/LinkedListImpl.java |  39 +-
 .../src/com/java/xiaoqin/impl/StackImpl.java  |  60 +++
 .../com/java/xiaoqin/interfaces/IList.java    |   6 +
 .../com/java/xiaoqin/interfaces/IQueue.java   |  15 +
 9 files changed, 590 insertions(+), 104 deletions(-)
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/Main.java
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/BinaryTreeNode.java
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/StackImpl.java
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IQueue.java

diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.gitignore b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.gitignore
index a2b48b352f..dd9d181eaa 100644
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.gitignore
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.gitignore
@@ -3,4 +3,5 @@
 Homestead.yaml
 Homestead.json
 .env
-.idea
\ No newline at end of file
+.idea
+.xml
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
index 2b612eeea0..0e2c5d87f8 100644
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
@@ -16,32 +16,64 @@
   <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file leaf-file-name="LinkedListImpl.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java">
+      <file leaf-file-name="IList.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="484">
-              <caret line="97" column="35" lean-forward="false" selection-start-line="97" selection-start-column="35" selection-end-line="97" selection-end-column="35" />
+            <state relative-caret-position="984">
+              <caret line="41" column="15" lean-forward="false" selection-start-line="41" selection-start-column="15" selection-end-line="41" selection-end-column="15" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Main.java" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/Main.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="420">
+              <caret line="22" column="23" lean-forward="true" selection-start-line="22" selection-start-column="23" selection-end-line="22" selection-end-column="23" />
               <folding>
                 <element signature="imports" expanded="true" />
-                <element signature="e#2013#2014#0" expanded="true" />
-                <element signature="e#2063#2064#0" expanded="true" />
-                <element signature="e#2673#2674#0" expanded="true" />
-                <element signature="e#2700#2701#0" expanded="true" />
-                <element signature="e#2752#2753#0" expanded="true" />
-                <element signature="e#2801#2802#0" expanded="true" />
-                <element signature="e#3163#3164#0" expanded="true" />
-                <element signature="e#3206#3207#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name=".gitignore" pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/.gitignore">
+      <file leaf-file-name="BinaryTreeNode.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/BinaryTreeNode.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="120">
-              <caret line="5" column="0" lean-forward="false" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
-              <folding />
+            <state relative-caret-position="1608">
+              <caret line="79" column="36" lean-forward="false" selection-start-line="79" selection-start-column="36" selection-end-line="79" selection-end-column="36" />
+              <folding>
+                <element signature="e#228#229#0" expanded="true" />
+                <element signature="e#255#256#0" expanded="true" />
+                <element signature="e#290#291#0" expanded="true" />
+                <element signature="e#322#323#0" expanded="true" />
+                <element signature="e#366#367#0" expanded="true" />
+                <element signature="e#398#399#0" expanded="true" />
+                <element signature="e#456#457#0" expanded="true" />
+                <element signature="e#498#499#0" expanded="true" />
+                <element signature="e#543#544#0" expanded="true" />
+                <element signature="e#576#577#0" expanded="true" />
+                <element signature="e#636#637#0" expanded="true" />
+                <element signature="e#680#681#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="StackImpl.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/StackImpl.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="912">
+              <caret line="38" column="5" lean-forward="false" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
+              <folding>
+                <element signature="e#207#208#0" expanded="true" />
+                <element signature="e#229#230#0" expanded="true" />
+                <element signature="e#750#751#0" expanded="true" />
+                <element signature="e#788#789#0" expanded="true" />
+                <element signature="e#875#876#0" expanded="true" />
+                <element signature="e#910#911#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
@@ -49,8 +81,8 @@
       <file leaf-file-name="ArrayListImpl.java" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="912">
-              <caret line="43" column="9" lean-forward="true" selection-start-line="43" selection-start-column="9" selection-end-line="43" selection-end-column="9" />
+            <state relative-caret-position="744">
+              <caret line="34" column="0" lean-forward="false" selection-start-line="34" selection-start-column="0" selection-end-line="34" selection-end-column="0" />
               <folding>
                 <element signature="imports" expanded="true" />
               </folding>
@@ -72,7 +104,11 @@
     <findStrings>
       <find>package com.java.xiaoqin.impl;  import com.java.xiaoqin.interfaces.IList;  /**  * Created by xiaoqin on 17-2-25.  */ public class ArrayListImpl&lt;T&gt; implements IList&lt;T&gt; {      private static final int DEFAULT_INIT_SIZE = 20;      private T[] data;          private int size = 0;      public ArrayListImpl(){         this(DEFAULT_INIT_SIZE);     }      public ArrayListImpl(int capacity){         if (capacity &lt; 0){             throw new IllegalArgumentException(&quot;无效的capacity：&quot; + capacity);         }         if (0 == capacity){             capacity = DEFAULT_INIT_SIZE;         }         data = (T[]) new Object[capacity];     }      @Override     public void add(T t) {      }      @Override     public void add(int index, T t) {      }      @Override     public T get(int index) {         return null;     }      @Override     public T remove(int index) {         return null;     }      @Override     public int size() {         return 0;     } }</find>
       <find>gro</find>
+      <find>Object</find>
     </findStrings>
+    <replaceStrings>
+      <replace>T</replace>
+    </replaceStrings>
   </component>
   <component name="GradleLocalSettings">
     <option name="externalProjectsViewState">
@@ -84,11 +120,17 @@
       <list>
         <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/List.java" />
         <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IIterator.java" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java" />
         <option value="$PROJECT_DIR$/src/Main.java" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java" />
         <option value="$PROJECT_DIR$/.gitignore" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IQueue.java" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/Stack.java" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/StackImpl.java" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/BinaryTreeNode.java" />
+        <option value="$PROJECT_DIR$/src/main/xiaoqin/Main.java" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/Main.java" />
       </list>
     </option>
   </component>
@@ -117,7 +159,9 @@
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
+      <pane id="Scratches" />
       <pane id="Scope" />
+      <pane id="PackagesPane" />
       <pane id="ProjectPane">
         <subPane>
           <PATH>
@@ -147,10 +191,6 @@
               <option name="myItemId" value="xiaoqin" />
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="interfaces" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
           </PATH>
           <PATH>
             <PATH_ELEMENT>
@@ -176,8 +216,6 @@
           </PATH>
         </subPane>
       </pane>
-      <pane id="PackagesPane" />
-      <pane id="Scratches" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -186,23 +224,27 @@
     <property name="nodejs_interpreter_path" value="$USER_HOME$/.nvm/versions/node/v7.3.0/bin/node" />
     <property name="js.eslint.eslintPackage" value="" />
     <property name="js-jscs-nodeInterpreter" value="$USER_HOME$/.nvm/versions/node/v7.3.0/bin/node" />
+    <property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
   </component>
   <component name="RunManager" selected="Application.Main">
-    <configuration default="false" name="Main" type="Application" factoryName="Application" temporary="true">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <option name="MAIN_CLASS_NAME" value="Main" />
-      <option name="VM_PARAMETERS" value="" />
-      <option name="PROGRAM_PARAMETERS" value="" />
-      <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
+    <configuration default="false" name="Main" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
+        <pattern>
+          <option name="PATTERN" value="main.xiaoqin.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <option name="MAIN_CLASS_NAME" value="main.xiaoqin.Main" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" value="" />
+      <option name="ALTERNATIVE_JRE_PATH" />
       <option name="ENABLE_SWING_INSPECTOR" value="false" />
       <option name="ENV_VARIABLES" />
       <option name="PASS_PARENT_ENVS" value="true" />
       <module name="job_2017_02_19_data_structure" />
       <envs />
-      <RunnerSettings RunnerId="Run" />
-      <ConfigurationWrapper RunnerId="Run" />
       <method />
     </configuration>
     <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android App">
@@ -427,6 +469,7 @@
       <setting name="passParentEnv" value="true" />
       <setting name="launchBrowser" value="true" />
       <setting name="launchBrowserUrl" value="" />
+      <setting name="depsClasspath" value="false" />
       <method />
     </configuration>
     <configuration default="true" type="JUnit" factoryName="JUnit">
@@ -540,6 +583,12 @@
       <method />
     </configuration>
     <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
+      <node-interpreter>project</node-interpreter>
+      <node-options />
+      <gulpfile />
+      <tasks />
+      <arguments />
+      <envs />
       <method />
     </configuration>
     <configuration default="true" type="js.build_tools.npm" factoryName="npm">
@@ -559,8 +608,9 @@
       <item index="0" class="java.lang.String" itemvalue="Application.Main" />
     </list>
     <recent_temporary>
-      <list size="1">
+      <list size="2">
         <item index="0" class="java.lang.String" itemvalue="Application.Main" />
+        <item index="1" class="java.lang.String" itemvalue="Application.Main" />
       </list>
     </recent_temporary>
   </component>
@@ -574,46 +624,49 @@
       <option name="number" value="Default" />
       <option name="presentableId" value="Default" />
       <updated>1488008946620</updated>
-      <workItem from="1488008949618" duration="14950000" />
+      <workItem from="1488008949618" duration="15019000" />
+      <workItem from="1488080914888" duration="4730000" />
+      <workItem from="1488110875466" duration="4842000" />
+      <workItem from="1488121601736" duration="21000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="14950000" />
+    <option name="totallyTimeSpent" value="24612000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="0" y="0" width="1920" height="1054" extended-state="0" />
     <editor active="true" />
     <layout>
-      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
-      <window_info id="Nl-Palette" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
-      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Nl-Palette" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
+      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24973877" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
-      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
       <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
-      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
     </layout>
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -627,24 +680,30 @@
       <breakpoints>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java</url>
-          <line>36</line>
+          <line>37</line>
           <properties />
           <option name="timeStamp" value="8" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java</url>
-          <line>53</line>
+          <line>54</line>
           <properties />
           <option name="timeStamp" value="9" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java</url>
-          <line>84</line>
+          <line>85</line>
           <properties />
           <option name="timeStamp" value="10" />
         </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/StackImpl.java</url>
+          <line>13</line>
+          <properties />
+          <option name="timeStamp" value="12" />
+        </line-breakpoint>
       </breakpoints>
-      <option name="time" value="11" />
+      <option name="time" value="13" />
     </breakpoint-manager>
     <watches-manager>
       <configuration name="Application">
@@ -654,6 +713,9 @@
         <watch expression=" size + size &gt;&gt; 1" />
         <watch expression="data.length - index - 1" />
         <watch expression="size - index - 1" />
+        <watch expression="size()" />
+        <watch expression=" size()" />
+        <watch expression="size()" />
       </configuration>
     </watches-manager>
   </component>
@@ -662,19 +724,139 @@
     <option name="FILTER_TARGETS" value="false" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces.java">
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="120">
-          <caret line="5" column="23" lean-forward="false" selection-start-line="5" selection-start-column="23" selection-end-line="5" selection-end-column="23" />
+        <state relative-caret-position="984">
+          <caret line="41" column="15" lean-forward="false" selection-start-line="41" selection-start-column="15" selection-end-line="41" selection-end-column="15" />
           <folding />
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/Main.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/BinaryTreeNode.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1608">
+          <caret line="79" column="36" lean-forward="false" selection-start-line="79" selection-start-column="36" selection-end-line="79" selection-end-column="36" />
+          <folding>
+            <element signature="e#228#229#0" expanded="true" />
+            <element signature="e#255#256#0" expanded="true" />
+            <element signature="e#290#291#0" expanded="true" />
+            <element signature="e#322#323#0" expanded="true" />
+            <element signature="e#366#367#0" expanded="true" />
+            <element signature="e#398#399#0" expanded="true" />
+            <element signature="e#456#457#0" expanded="true" />
+            <element signature="e#498#499#0" expanded="true" />
+            <element signature="e#543#544#0" expanded="true" />
+            <element signature="e#576#577#0" expanded="true" />
+            <element signature="e#636#637#0" expanded="true" />
+            <element signature="e#680#681#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/StackImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="912">
+          <caret line="38" column="5" lean-forward="false" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
+          <folding>
+            <element signature="e#207#208#0" expanded="true" />
+            <element signature="e#229#230#0" expanded="true" />
+            <element signature="e#750#751#0" expanded="true" />
+            <element signature="e#788#789#0" expanded="true" />
+            <element signature="e#875#876#0" expanded="true" />
+            <element signature="e#910#911#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="744">
+          <caret line="34" column="0" lean-forward="false" selection-start-line="34" selection-start-column="0" selection-end-line="34" selection-end-column="0" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="2760">
+          <caret line="117" column="13" lean-forward="false" selection-start-line="117" selection-start-column="13" selection-end-line="117" selection-end-column="13" />
+          <folding>
+            <element signature="e#2067#2068#0" expanded="false" />
+            <element signature="e#2117#2118#0" expanded="false" />
+            <element signature="e#2800#2801#0" expanded="false" />
+            <element signature="e#2822#2823#0" expanded="false" />
+            <element signature="e#3564#3565#0" expanded="false" />
+            <element signature="e#3596#3597#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/Main.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/Queue.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="4560">
+          <caret line="190" column="12" lean-forward="false" selection-start-line="190" selection-start-column="6" selection-end-line="190" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="2328">
+          <caret line="97" column="35" lean-forward="false" selection-start-line="97" selection-start-column="35" selection-end-line="97" selection-end-column="35" />
+          <folding>
+            <element signature="e#2067#2068#0" expanded="false" />
+            <element signature="e#2117#2118#0" expanded="false" />
+            <element signature="e#2800#2801#0" expanded="false" />
+            <element signature="e#2822#2823#0" expanded="false" />
+            <element signature="e#3564#3565#0" expanded="false" />
+            <element signature="e#3596#3597#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/.gitignore">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="960">
+          <caret line="43" column="9" lean-forward="true" selection-start-line="43" selection-start-column="9" selection-end-line="43" selection-end-column="9" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces.java" />
     <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/AbstractList.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="-12709">
           <caret line="70" column="22" lean-forward="false" selection-start-line="70" selection-start-column="22" selection-end-line="70" selection-end-column="22" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -682,10 +864,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="545">
           <caret line="53" column="11" lean-forward="false" selection-start-line="53" selection-start-column="11" selection-end-line="53" selection-end-column="11" />
-          <folding>
-            <element signature="e#1035#1036#0" expanded="false" />
-            <element signature="e#1094#1095#0" expanded="false" />
-          </folding>
         </state>
       </provider>
     </entry>
@@ -693,7 +871,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="-711">
           <caret line="53" column="17" lean-forward="false" selection-start-line="53" selection-start-column="17" selection-end-line="53" selection-end-column="17" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -701,7 +878,21 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="195">
           <caret line="151" column="27" lean-forward="true" selection-start-line="151" selection-start-column="4" selection-end-line="151" selection-end-column="27" />
-          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="235">
+          <caret line="251" column="17" lean-forward="false" selection-start-line="251" selection-start-column="17" selection-end-line="251" selection-end-column="17" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/Main.java" />
+    <entry file="file://$PROJECT_DIR$/.gitignore">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="4" lean-forward="true" selection-start-line="0" selection-start-column="4" selection-end-line="0" selection-end-column="4" />
         </state>
       </provider>
     </entry>
@@ -709,67 +900,120 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="336">
           <caret line="14" column="15" lean-forward="false" selection-start-line="14" selection-start-column="15" selection-end-line="14" selection-end-column="15" />
-          <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java">
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IQueue.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="264">
+          <caret line="11" column="22" lean-forward="false" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="22" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/LinkedList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="195">
+          <caret line="269" column="0" lean-forward="false" selection-start-line="269" selection-start-column="0" selection-end-line="269" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/Queue.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="3768">
+          <caret line="190" column="12" lean-forward="false" selection-start-line="190" selection-start-column="6" selection-end-line="190" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="2760">
+          <caret line="117" column="13" lean-forward="false" selection-start-line="117" selection-start-column="13" selection-end-line="117" selection-end-column="13" />
+          <folding>
+            <element signature="e#2067#2068#0" expanded="false" />
+            <element signature="e#2117#2118#0" expanded="false" />
+            <element signature="e#2800#2801#0" expanded="false" />
+            <element signature="e#2822#2823#0" expanded="false" />
+            <element signature="e#3564#3565#0" expanded="false" />
+            <element signature="e#3596#3597#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/Vector.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="204">
-          <caret line="18" column="9" lean-forward="false" selection-start-line="18" selection-start-column="9" selection-end-line="18" selection-end-column="9" />
-          <folding />
+          <caret line="617" column="29" lean-forward="false" selection-start-line="617" selection-start-column="29" selection-end-line="617" selection-end-column="29" />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/ArrayList.java">
+    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/Stack.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="235">
-          <caret line="251" column="17" lean-forward="false" selection-start-line="251" selection-start-column="17" selection-end-line="251" selection-end-column="17" />
-          <folding />
+        <state relative-caret-position="132">
+          <caret line="66" column="13" lean-forward="false" selection-start-line="66" selection-start-column="13" selection-end-line="66" selection-end-column="13" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="912">
-          <caret line="43" column="9" lean-forward="true" selection-start-line="43" selection-start-column="9" selection-end-line="43" selection-end-column="9" />
+        <state relative-caret-position="744">
+          <caret line="34" column="0" lean-forward="false" selection-start-line="34" selection-start-column="0" selection-end-line="34" selection-end-column="0" />
           <folding>
             <element signature="imports" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/Main.java">
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-231">
-          <caret line="15" column="38" lean-forward="false" selection-start-line="15" selection-start-column="38" selection-end-line="15" selection-end-column="38" />
+        <state relative-caret-position="984">
+          <caret line="41" column="15" lean-forward="false" selection-start-line="41" selection-start-column="15" selection-end-line="41" selection-end-column="15" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java">
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/BinaryTreeNode.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="484">
-          <caret line="97" column="35" lean-forward="false" selection-start-line="97" selection-start-column="35" selection-end-line="97" selection-end-column="35" />
+        <state relative-caret-position="1608">
+          <caret line="79" column="36" lean-forward="false" selection-start-line="79" selection-start-column="36" selection-end-line="79" selection-end-column="36" />
           <folding>
-            <element signature="imports" expanded="true" />
-            <element signature="e#2013#2014#0" expanded="true" />
-            <element signature="e#2063#2064#0" expanded="true" />
-            <element signature="e#2673#2674#0" expanded="true" />
-            <element signature="e#2700#2701#0" expanded="true" />
-            <element signature="e#2752#2753#0" expanded="true" />
-            <element signature="e#2801#2802#0" expanded="true" />
-            <element signature="e#3163#3164#0" expanded="true" />
-            <element signature="e#3206#3207#0" expanded="true" />
+            <element signature="e#228#229#0" expanded="true" />
+            <element signature="e#255#256#0" expanded="true" />
+            <element signature="e#290#291#0" expanded="true" />
+            <element signature="e#322#323#0" expanded="true" />
+            <element signature="e#366#367#0" expanded="true" />
+            <element signature="e#398#399#0" expanded="true" />
+            <element signature="e#456#457#0" expanded="true" />
+            <element signature="e#498#499#0" expanded="true" />
+            <element signature="e#543#544#0" expanded="true" />
+            <element signature="e#576#577#0" expanded="true" />
+            <element signature="e#636#637#0" expanded="true" />
+            <element signature="e#680#681#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/.gitignore">
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/StackImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="120">
-          <caret line="5" column="0" lean-forward="false" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
-          <folding />
+        <state relative-caret-position="912">
+          <caret line="38" column="5" lean-forward="false" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
+          <folding>
+            <element signature="e#207#208#0" expanded="true" />
+            <element signature="e#229#230#0" expanded="true" />
+            <element signature="e#750#751#0" expanded="true" />
+            <element signature="e#788#789#0" expanded="true" />
+            <element signature="e#875#876#0" expanded="true" />
+            <element signature="e#910#911#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/Main.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="420">
+          <caret line="22" column="23" lean-forward="true" selection-start-line="22" selection-start-column="23" selection-end-line="22" selection-end-column="23" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/Main.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/Main.java
new file mode 100644
index 0000000000..95266b0956
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/Main.java
@@ -0,0 +1,36 @@
+package com.java.xiaoqin;
+
+import com.java.xiaoqin.impl.BinaryTreeNode;
+
+import java.util.Stack;
+
+/**
+ * Created by xiaoqin on 17-2-26.
+ */
+public class Main {
+    public static void main(String[] args) {
+//        test();
+        testMe();
+    }
+
+    private static void testMe() {
+        BinaryTreeNode<Integer> node = new BinaryTreeNode<>();
+        node.insert(5);
+        node.insert(2);
+        node.insert(7);
+        node.insert(1);
+        node.insert(6);
+        node.insert(4);
+        node.insert(8);
+        System.out.println(node.toString());
+    }
+
+    private static void test() {
+        Stack<Integer> stack = new Stack<>();
+        for (int i = 0; i < 0; i++) {
+            stack.push(i);
+        }
+        System.out.println(stack.peek());
+        System.out.println(stack.peek());
+    }
+}
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/ArrayListImpl.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/ArrayListImpl.java
index c96d0b4f30..8344ec35dd 100644
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/ArrayListImpl.java
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/ArrayListImpl.java
@@ -77,6 +77,11 @@ public int size() {
         return size;
     }
 
+    @Override
+    public boolean isEmpty() {
+        return size == 0;
+    }
+
     @Override
     public IIterator<T> iterator() {
         return new ArrayIteratorImpl<>();
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/BinaryTreeNode.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/BinaryTreeNode.java
new file mode 100644
index 0000000000..664468d901
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/BinaryTreeNode.java
@@ -0,0 +1,82 @@
+package com.java.xiaoqin.impl;
+
+/**
+ * Created by xiaoqin on 17-2-26.
+ */
+public class BinaryTreeNode<T> {
+    private T data;
+    private BinaryTreeNode leftChild;
+    private BinaryTreeNode rightChild;
+
+    public T getData() {
+        return data;
+    }
+
+    public void setData(T data) {
+        this.data = data;
+    }
+
+    public BinaryTreeNode getLeftChild() {
+        return leftChild;
+    }
+
+    public void setLeftChild(BinaryTreeNode leftChild) {
+        this.leftChild = leftChild;
+    }
+
+    public BinaryTreeNode getRightChild() {
+        return rightChild;
+    }
+
+    public void setRightChild(BinaryTreeNode rightChild) {
+        this.rightChild = rightChild;
+    }
+
+    public BinaryTreeNode insert(T o) {
+        if (data == null) {
+            data = o;
+            return this;
+        } else {
+            return insert(this, o);
+        }
+    }
+
+    private BinaryTreeNode insert(BinaryTreeNode node, T o) {
+        if (o instanceof Integer) {
+            if ((Integer) node.data > (Integer) o) {
+                if (null == node.leftChild) {
+                    node.leftChild = new BinaryTreeNode();
+                    node.leftChild.data = o;
+                    return node.leftChild;
+                } else {
+                    return insert(node.leftChild, o);
+                }
+            } else if ((Integer) node.data < (Integer) o) {
+                if (null == node.rightChild) {
+                    node.rightChild = new BinaryTreeNode();
+                    node.rightChild.data = o;
+                    return node.rightChild;
+                } else {
+                    return insert(node.rightChild, o);
+                }
+            } else {
+                return node;
+            }
+        } else {
+            return null;
+        }
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sbToString = new StringBuilder();
+        sbToString.append("data:").append(data);
+        if (null != leftChild) {
+            sbToString.append("\t").append(data).append("left:").append(leftChild.toString());
+        }
+        if (null != rightChild) {
+            sbToString.append("\t").append(data).append("right:").append(rightChild.toString());
+        }
+        return sbToString.toString();
+    }
+}
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/LinkedListImpl.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/LinkedListImpl.java
index 90f8c326af..b43e6ec863 100644
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/LinkedListImpl.java
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/LinkedListImpl.java
@@ -2,11 +2,12 @@
 
 import com.java.xiaoqin.interfaces.IIterator;
 import com.java.xiaoqin.interfaces.IList;
+import com.java.xiaoqin.interfaces.IQueue;
 
 /**
  * Created by xiaoqin on 17-2-26.
  */
-public class LinkedListImpl<T> implements IList<T> {
+public class LinkedListImpl<T> implements IList<T>, IQueue<T> {
 
     private Node<T> head;
     private Node<T> last;
@@ -107,6 +108,42 @@ public int size() {
         return size;
     }
 
+    @Override
+    public void enQueue(T t) {
+        add(t);
+    }
+
+    @Override
+    public T deQueue() {
+        if (0 >= size) {
+            throw new NullPointerException("remove is null");
+        }
+        T t = null;
+        Node<T> node = findNodeByIndex(0);
+        if (null != node) {
+            t = node.data;
+            if (null != node.right) {
+                node.right.left = null;
+                Node<T> right = node.right;
+                head = right;
+                while (right != null) {
+                    right.index--;
+                    right = right.right;
+                }
+                size--;
+            } else {
+                head = last = null;
+                size = 0;
+            }
+        }
+        return t;
+    }
+
+    @Override
+    public boolean isEmpty() {
+        return size == 0;
+    }
+
     @Override
     public IIterator<T> iterator() {
         return new LinkedIteratorImpl<>();
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/StackImpl.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/StackImpl.java
new file mode 100644
index 0000000000..0a585ab904
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/StackImpl.java
@@ -0,0 +1,60 @@
+package com.java.xiaoqin.impl;
+
+/**
+ * Created by xiaoqin on 17-2-26.
+ */
+public class StackImpl<T> extends ArrayListImpl<T> {
+
+    /**
+     * 把数据压住栈
+     *
+     * @param t
+     */
+    public void push(T t) {
+        add(t);
+    }
+
+    /**
+     * 返回栈顶数据，并移除出栈
+     *
+     * @return
+     */
+    public T pop() {
+        if (0 >= size()) {
+            throw new NullPointerException("size is 0");
+        }
+        return remove(size() - 1);
+    }
+
+    /**
+     * 返回栈顶数据
+     *
+     * @return
+     */
+    public T peek() {
+        if (0 >= size()) {
+            throw new NullPointerException("size is 0");
+        }
+        return get(size() - 1);
+    }
+
+    /**
+     * 是否为null
+     *
+     * @return
+     */
+    @Override
+    public boolean isEmpty() {
+        return super.isEmpty();
+    }
+
+    /**
+     * 大小
+     *
+     * @return
+     */
+    @Override
+    public int size() {
+        return super.size();
+    }
+}
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IList.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IList.java
index 1a7a01cbca..7c08a46293 100644
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IList.java
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IList.java
@@ -38,6 +38,12 @@ public interface IList<T> {
      */
     int size();
 
+    /**
+     * 是否为empty
+     * @return
+     */
+    boolean isEmpty();
+
     /**
      * 返回迭代器
      * @return
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IQueue.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IQueue.java
new file mode 100644
index 0000000000..4ae4b7d785
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/interfaces/IQueue.java
@@ -0,0 +1,15 @@
+package com.java.xiaoqin.interfaces;
+
+/**
+ * Created by xiaoqin on 17-2-26.
+ */
+public interface IQueue<T> {
+
+    void enQueue(T t);
+
+    T deQueue();
+
+    boolean isEmpty();
+
+    int size();
+}

From e8b73f6460745d2751f57376047c92395a77f9a5 Mon Sep 17 00:00:00 2001
From: cheungchan <1377699408@qq.com>
Date: Sun, 26 Feb 2017 23:40:35 +0800
Subject: [PATCH 18/31] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96gitigore?=
 =?UTF-8?q?=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 group05/1377699408/.gitignore | 4 ++++
 1 file changed, 4 insertions(+)
 create mode 100644 group05/1377699408/.gitignore

diff --git a/group05/1377699408/.gitignore b/group05/1377699408/.gitignore
new file mode 100644
index 0000000000..5deea7e781
--- /dev/null
+++ b/group05/1377699408/.gitignore
@@ -0,0 +1,4 @@
+/bin
+.classpath
+.project
+.settings/

From cf1bdfba408881e172efc2c468140ef5d529da3e Mon Sep 17 00:00:00 2001
From: cheungchan <1377699408@qq.com>
Date: Sun, 26 Feb 2017 23:40:53 +0800
Subject: [PATCH 19/31] =?UTF-8?q?ArrayList=E5=92=8C=E5=8D=95=E5=85=83?=
 =?UTF-8?q?=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../20170226/src/list/ArrayList.java"         | 54 +++++++++++++++++
 .../20170226/src/test/ArrayListTest.java"     | 59 +++++++++++++++++++
 2 files changed, 113 insertions(+)
 create mode 100644 "group05/1377699408/\344\275\234\344\270\232/20170226/src/list/ArrayList.java"
 create mode 100644 "group05/1377699408/\344\275\234\344\270\232/20170226/src/test/ArrayListTest.java"

diff --git "a/group05/1377699408/\344\275\234\344\270\232/20170226/src/list/ArrayList.java" "b/group05/1377699408/\344\275\234\344\270\232/20170226/src/list/ArrayList.java"
new file mode 100644
index 0000000000..f015ad8623
--- /dev/null
+++ "b/group05/1377699408/\344\275\234\344\270\232/20170226/src/list/ArrayList.java"
@@ -0,0 +1,54 @@
+package list;
+
+import java.util.Arrays;
+
+public class ArrayList<E> {
+	private transient static int INITIAL_SIZE = 10;
+	private transient int arrayLength;
+	private transient int size;
+	private transient E[] array;
+	public ArrayList(){
+		array = (E[]) new Object[INITIAL_SIZE];
+		arrayLength = INITIAL_SIZE;
+	}
+	public ArrayList(int size){
+		if(size<=0){
+			throw new IllegalArgumentException("参数不可以小于0");
+		}
+		array = (E[])new Object[size];
+		arrayLength = array.length;
+		ensureCapacity(size);
+		this.size = size;
+	}
+	public int size(){
+		return size;
+	}
+	public void add(E e){
+		ensureCapacity(size+1);
+		array[size] = e;
+		size++;
+	}
+	public E get(int index){
+		if(index<0 || index > size){
+			throw new IllegalArgumentException("索引越界");
+		}
+		return array[index];
+		
+	}
+	public E set(int index, E e){
+		if(index<0 || index>size){
+			throw new IllegalArgumentException("索引越界");
+		}
+		E result = array[index];
+		array[index] = e;
+		return result;
+	}
+	private void ensureCapacity(int size){
+		E[] oldArray = array;
+		int oldSize = arrayLength;
+		while(size>arrayLength){
+			arrayLength = arrayLength + (arrayLength >> 1);
+			array = Arrays.copyOf(oldArray, arrayLength);
+		}
+	}
+}
diff --git "a/group05/1377699408/\344\275\234\344\270\232/20170226/src/test/ArrayListTest.java" "b/group05/1377699408/\344\275\234\344\270\232/20170226/src/test/ArrayListTest.java"
new file mode 100644
index 0000000000..e0d277eb10
--- /dev/null
+++ "b/group05/1377699408/\344\275\234\344\270\232/20170226/src/test/ArrayListTest.java"
@@ -0,0 +1,59 @@
+package test;
+
+import junit.framework.TestCase;
+import list.ArrayList;
+
+public class ArrayListTest extends TestCase {
+
+	protected void setUp() throws Exception {
+		super.setUp();
+	}
+
+	protected void tearDown() throws Exception {
+		super.tearDown();
+	}
+
+	public void testArrayList() {
+		ArrayList<Integer> a = new ArrayList<Integer>();
+		assertEquals(a.size(), 0);
+	}
+
+	public void testArrayListInt() {
+		ArrayList<Integer> a = new ArrayList<Integer>(9);
+		assertEquals(a.size(), 9);
+	}
+
+	public void testSize() {
+		ArrayList<Integer> a = new ArrayList<Integer>(9);
+		assertEquals(a.size(), 9);
+		ArrayList<Integer> a2 = new ArrayList<Integer>(100);
+		assertEquals(a2.size(), 100);
+	}
+
+	public void testAdd() {
+		ArrayList<Integer> a = new ArrayList<Integer>();
+		for (int i = 0; i < 1000; i++) {
+			a.add(5);
+			assertEquals(a.size(), i+1);
+			assertEquals(a.get(i), new Integer(5));
+		}
+	}
+
+	public void testGet() {
+		ArrayList<Integer> a = new ArrayList<Integer>();
+		a.add(6);
+		assertEquals(a.get(0), new Integer(6));
+		
+	}
+
+	public void testSet() {
+		ArrayList<Integer> a = new ArrayList<Integer>();
+		for (int i = 0; i < 100; i++) {
+			a.add(56);
+		}
+		a.set(5, 66);
+		assertEquals(a.get(5), new Integer(66));
+		assertEquals(a.get(7), new Integer(56));
+	}
+
+}

From 95762b4b380702415d2a4cad49d873e148c78d26 Mon Sep 17 00:00:00 2001
From: xiaoqin0000 <xiaoqin0000@gmail.com>
Date: Sun, 26 Feb 2017 23:53:25 +0800
Subject: [PATCH 20/31] add Test cast

---
 .../.idea/workspace.xml                       | 476 ++++++++++++------
 .../job_2017_02_19_data_structure.iml         |  13 +-
 .../com/java/xiaoqin/impl/ArrayListImpl.java  |  10 +
 .../com/java/xiaoqin/impl/LinkedListImpl.java |  21 +-
 .../java/xiaoqin/impl/ArrayListImplTest.java  | 107 ++++
 .../com/java/xiaoqin/impl/IQueueImplTest.java |  77 +++
 .../com/java/xiaoqin/impl/IStackImplTest.java |  90 ++++
 .../java/xiaoqin/impl/LinkedListImplTest.java | 108 ++++
 8 files changed, 755 insertions(+), 147 deletions(-)
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/ArrayListImplTest.java
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/IQueueImplTest.java
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/IStackImplTest.java
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/LinkedListImplTest.java

diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
index 0e2c5d87f8..4f4fb93323 100644
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
@@ -16,21 +16,11 @@
   <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file leaf-file-name="IList.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java">
+      <file leaf-file-name="IStackImplTest.java" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/IStackImplTest.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="984">
-              <caret line="41" column="15" lean-forward="false" selection-start-line="41" selection-start-column="15" selection-end-line="41" selection-end-column="15" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="Main.java" pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/Main.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="420">
-              <caret line="22" column="23" lean-forward="true" selection-start-line="22" selection-start-column="23" selection-end-line="22" selection-end-column="23" />
+            <state relative-caret-position="273">
+              <caret line="35" column="27" lean-forward="true" selection-start-line="35" selection-start-column="27" selection-end-line="35" selection-end-column="27" />
               <folding>
                 <element signature="imports" expanded="true" />
               </folding>
@@ -38,53 +28,13 @@
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="BinaryTreeNode.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/BinaryTreeNode.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="1608">
-              <caret line="79" column="36" lean-forward="false" selection-start-line="79" selection-start-column="36" selection-end-line="79" selection-end-column="36" />
-              <folding>
-                <element signature="e#228#229#0" expanded="true" />
-                <element signature="e#255#256#0" expanded="true" />
-                <element signature="e#290#291#0" expanded="true" />
-                <element signature="e#322#323#0" expanded="true" />
-                <element signature="e#366#367#0" expanded="true" />
-                <element signature="e#398#399#0" expanded="true" />
-                <element signature="e#456#457#0" expanded="true" />
-                <element signature="e#498#499#0" expanded="true" />
-                <element signature="e#543#544#0" expanded="true" />
-                <element signature="e#576#577#0" expanded="true" />
-                <element signature="e#636#637#0" expanded="true" />
-                <element signature="e#680#681#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
       <file leaf-file-name="StackImpl.java" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/StackImpl.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="912">
-              <caret line="38" column="5" lean-forward="false" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
+            <state relative-caret-position="-48">
+              <caret line="13" column="0" lean-forward="false" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
               <folding>
-                <element signature="e#207#208#0" expanded="true" />
                 <element signature="e#229#230#0" expanded="true" />
-                <element signature="e#750#751#0" expanded="true" />
-                <element signature="e#788#789#0" expanded="true" />
-                <element signature="e#875#876#0" expanded="true" />
-                <element signature="e#910#911#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="ArrayListImpl.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="744">
-              <caret line="34" column="0" lean-forward="false" selection-start-line="34" selection-start-column="0" selection-end-line="34" selection-end-column="0" />
-              <folding>
-                <element signature="imports" expanded="true" />
               </folding>
             </state>
           </provider>
@@ -124,13 +74,17 @@
         <option value="$PROJECT_DIR$/.gitignore" />
         <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IQueue.java" />
         <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java" />
         <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/Stack.java" />
         <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/StackImpl.java" />
         <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/BinaryTreeNode.java" />
         <option value="$PROJECT_DIR$/src/main/xiaoqin/Main.java" />
         <option value="$PROJECT_DIR$/src/com/java/xiaoqin/Main.java" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java" />
+        <option value="$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/ArrayListImplTest.java" />
+        <option value="$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/LinkedListImplTest.java" />
+        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java" />
+        <option value="$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/IQueueImplTest.java" />
+        <option value="$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/IStackImplTest.java" />
       </list>
     </option>
   </component>
@@ -174,6 +128,42 @@
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
           </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="job_2017_02_19_data_structure" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="job_2017_02_19_data_structure" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="impl" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="job_2017_02_19_data_structure" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="job_2017_02_19_data_structure" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="xiaoqin" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
           <PATH>
             <PATH_ELEMENT>
               <option name="myItemId" value="job_2017_02_19_data_structure" />
@@ -191,6 +181,10 @@
               <option name="myItemId" value="xiaoqin" />
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="interfaces" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
           </PATH>
           <PATH>
             <PATH_ELEMENT>
@@ -225,26 +219,142 @@
     <property name="js.eslint.eslintPackage" value="" />
     <property name="js-jscs-nodeInterpreter" value="$USER_HOME$/.nvm/versions/node/v7.3.0/bin/node" />
     <property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
+    <property name="extract.method.default.visibility" value="private" />
+  </component>
+  <component name="RecentsManager">
+    <key name="CopyClassDialog.RECENTS_KEY">
+      <recent name="test.com.java.xiaoqin.impl" />
+    </key>
   </component>
-  <component name="RunManager" selected="Application.Main">
-    <configuration default="false" name="Main" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
+  <component name="RunManager" selected="JUnit.IStackImplTest.pushT">
+    <configuration default="false" name="IStackImplTest.pushT" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
       <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
         <pattern>
-          <option name="PATTERN" value="main.xiaoqin.*" />
+          <option name="PATTERN" value="test.com.java.xiaoqin.impl.*" />
           <option name="ENABLED" value="true" />
         </pattern>
       </extension>
-      <option name="MAIN_CLASS_NAME" value="main.xiaoqin.Main" />
+      <module name="job_2017_02_19_data_structure" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" value="test.com.java.xiaoqin.impl" />
+      <option name="MAIN_CLASS_NAME" value="test.com.java.xiaoqin.impl.IStackImplTest" />
+      <option name="METHOD_NAME" value="pushT" />
+      <option name="TEST_OBJECT" value="method" />
       <option name="VM_PARAMETERS" />
-      <option name="PROGRAM_PARAMETERS" />
+      <option name="PARAMETERS" />
       <option name="WORKING_DIRECTORY" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <envs />
+      <patterns />
+      <method />
+    </configuration>
+    <configuration default="false" name="IStackImplTest.pop" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
+        <pattern>
+          <option name="PATTERN" value="test.com.java.xiaoqin.impl.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <module name="job_2017_02_19_data_structure" />
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
       <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <option name="PACKAGE_NAME" value="test.com.java.xiaoqin.impl" />
+      <option name="MAIN_CLASS_NAME" value="test.com.java.xiaoqin.impl.IStackImplTest" />
+      <option name="METHOD_NAME" value="pop" />
+      <option name="TEST_OBJECT" value="method" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
       <option name="ENV_VARIABLES" />
       <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <envs />
+      <patterns />
+      <method />
+    </configuration>
+    <configuration default="false" name="IStackImplTest.peek" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
+        <pattern>
+          <option name="PATTERN" value="test.com.java.xiaoqin.impl.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
       <module name="job_2017_02_19_data_structure" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" value="test.com.java.xiaoqin.impl" />
+      <option name="MAIN_CLASS_NAME" value="test.com.java.xiaoqin.impl.IStackImplTest" />
+      <option name="METHOD_NAME" value="peek" />
+      <option name="TEST_OBJECT" value="method" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
       <envs />
+      <patterns />
+      <method />
+    </configuration>
+    <configuration default="false" name="IStackImplTest.isEmpty" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
+        <pattern>
+          <option name="PATTERN" value="test.com.java.xiaoqin.impl.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <module name="job_2017_02_19_data_structure" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" value="test.com.java.xiaoqin.impl" />
+      <option name="MAIN_CLASS_NAME" value="test.com.java.xiaoqin.impl.IStackImplTest" />
+      <option name="METHOD_NAME" value="isEmpty" />
+      <option name="TEST_OBJECT" value="method" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <envs />
+      <patterns />
+      <method />
+    </configuration>
+    <configuration default="false" name="IStackImplTest.size" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
+        <pattern>
+          <option name="PATTERN" value="test.com.java.xiaoqin.impl.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <module name="job_2017_02_19_data_structure" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" value="test.com.java.xiaoqin.impl" />
+      <option name="MAIN_CLASS_NAME" value="test.com.java.xiaoqin.impl.IStackImplTest" />
+      <option name="METHOD_NAME" value="size" />
+      <option name="TEST_OBJECT" value="method" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <envs />
+      <patterns />
       <method />
     </configuration>
     <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android App">
@@ -604,13 +714,20 @@
     <configuration default="true" type="osgi.bnd.run" factoryName="Test Launcher (JUnit)">
       <method />
     </configuration>
-    <list size="1">
-      <item index="0" class="java.lang.String" itemvalue="Application.Main" />
+    <list size="5">
+      <item index="0" class="java.lang.String" itemvalue="JUnit.IStackImplTest.pushT" />
+      <item index="1" class="java.lang.String" itemvalue="JUnit.IStackImplTest.pop" />
+      <item index="2" class="java.lang.String" itemvalue="JUnit.IStackImplTest.peek" />
+      <item index="3" class="java.lang.String" itemvalue="JUnit.IStackImplTest.isEmpty" />
+      <item index="4" class="java.lang.String" itemvalue="JUnit.IStackImplTest.size" />
     </list>
     <recent_temporary>
-      <list size="2">
-        <item index="0" class="java.lang.String" itemvalue="Application.Main" />
-        <item index="1" class="java.lang.String" itemvalue="Application.Main" />
+      <list size="5">
+        <item index="0" class="java.lang.String" itemvalue="JUnit.IStackImplTest.pushT" />
+        <item index="1" class="java.lang.String" itemvalue="JUnit.IStackImplTest.pop" />
+        <item index="2" class="java.lang.String" itemvalue="JUnit.IStackImplTest.peek" />
+        <item index="3" class="java.lang.String" itemvalue="JUnit.IStackImplTest.isEmpty" />
+        <item index="4" class="java.lang.String" itemvalue="JUnit.IStackImplTest.size" />
       </list>
     </recent_temporary>
   </component>
@@ -627,12 +744,44 @@
       <workItem from="1488008949618" duration="15019000" />
       <workItem from="1488080914888" duration="4730000" />
       <workItem from="1488110875466" duration="4842000" />
-      <workItem from="1488121601736" duration="21000" />
+      <workItem from="1488121601736" duration="2774000" />
     </task>
     <servers />
   </component>
+  <component name="TestHistory">
+    <history-entry file="IQueueImplTest_isEmpty - 2017.02.26 at 23h 47m 59s.xml">
+      <configuration name="IQueueImplTest.isEmpty" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="IQueueImplTest_size - 2017.02.26 at 23h 48m 20s.xml">
+      <configuration name="IQueueImplTest.size" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="IStackImplTest_isEmpty - 2017.02.26 at 23h 52m 38s.xml">
+      <configuration name="IStackImplTest.isEmpty" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="IStackImplTest_isEmpty - 2017.02.26 at 23h 52m 47s.xml">
+      <configuration name="IStackImplTest.isEmpty" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="IStackImplTest_peek - 2017.02.26 at 23h 52m 29s.xml">
+      <configuration name="IStackImplTest.peek" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="IStackImplTest_peek - 2017.02.26 at 23h 52m 34s.xml">
+      <configuration name="IStackImplTest.peek" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="IStackImplTest_peek - 2017.02.26 at 23h 52m 50s.xml">
+      <configuration name="IStackImplTest.peek" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="IStackImplTest_pop - 2017.02.26 at 23h 52m 21s.xml">
+      <configuration name="IStackImplTest.pop" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="IStackImplTest_pop - 2017.02.26 at 23h 52m 53s.xml">
+      <configuration name="IStackImplTest.pop" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="IStackImplTest_size - 2017.02.26 at 23h 52m 42s.xml">
+      <configuration name="IStackImplTest.size" configurationId="JUnit" />
+    </history-entry>
+  </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="24612000" />
+    <option name="totallyTimeSpent" value="27365000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="0" y="0" width="1920" height="1054" extended-state="0" />
@@ -641,13 +790,14 @@
       <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
       <window_info id="Nl-Palette" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
       <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
@@ -664,7 +814,6 @@
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
-      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
       <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
     </layout>
@@ -697,13 +846,13 @@
           <option name="timeStamp" value="10" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/StackImpl.java</url>
-          <line>13</line>
+          <url>file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java</url>
+          <line>154</line>
           <properties />
-          <option name="timeStamp" value="12" />
+          <option name="timeStamp" value="13" />
         </line-breakpoint>
       </breakpoints>
-      <option name="time" value="13" />
+      <option name="time" value="14" />
     </breakpoint-manager>
     <watches-manager>
       <configuration name="Application">
@@ -768,12 +917,7 @@
         <state relative-caret-position="912">
           <caret line="38" column="5" lean-forward="false" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
           <folding>
-            <element signature="e#207#208#0" expanded="true" />
             <element signature="e#229#230#0" expanded="true" />
-            <element signature="e#750#751#0" expanded="true" />
-            <element signature="e#788#789#0" expanded="true" />
-            <element signature="e#875#876#0" expanded="true" />
-            <element signature="e#910#911#0" expanded="true" />
           </folding>
         </state>
       </provider>
@@ -793,12 +937,8 @@
         <state relative-caret-position="2760">
           <caret line="117" column="13" lean-forward="false" selection-start-line="117" selection-start-column="13" selection-end-line="117" selection-end-column="13" />
           <folding>
-            <element signature="e#2067#2068#0" expanded="false" />
-            <element signature="e#2117#2118#0" expanded="false" />
-            <element signature="e#2800#2801#0" expanded="false" />
-            <element signature="e#2822#2823#0" expanded="false" />
-            <element signature="e#3564#3565#0" expanded="false" />
-            <element signature="e#3596#3597#0" expanded="false" />
+            <element signature="e#2794#2795#0" expanded="true" />
+            <element signature="e#2816#2817#0" expanded="true" />
           </folding>
         </state>
       </provider>
@@ -825,12 +965,8 @@
         <state relative-caret-position="2328">
           <caret line="97" column="35" lean-forward="false" selection-start-line="97" selection-start-column="35" selection-end-line="97" selection-end-column="35" />
           <folding>
-            <element signature="e#2067#2068#0" expanded="false" />
-            <element signature="e#2117#2118#0" expanded="false" />
-            <element signature="e#2800#2801#0" expanded="false" />
-            <element signature="e#2822#2823#0" expanded="false" />
-            <element signature="e#3564#3565#0" expanded="false" />
-            <element signature="e#3596#3597#0" expanded="false" />
+            <element signature="e#2794#2795#0" expanded="true" />
+            <element signature="e#2816#2817#0" expanded="true" />
           </folding>
         </state>
       </provider>
@@ -903,13 +1039,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IQueue.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="264">
-          <caret line="11" column="22" lean-forward="false" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="22" />
-        </state>
-      </provider>
-    </entry>
     <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/LinkedList.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="195">
@@ -924,21 +1053,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2760">
-          <caret line="117" column="13" lean-forward="false" selection-start-line="117" selection-start-column="13" selection-end-line="117" selection-end-column="13" />
-          <folding>
-            <element signature="e#2067#2068#0" expanded="false" />
-            <element signature="e#2117#2118#0" expanded="false" />
-            <element signature="e#2800#2801#0" expanded="false" />
-            <element signature="e#2822#2823#0" expanded="false" />
-            <element signature="e#3564#3565#0" expanded="false" />
-            <element signature="e#3596#3597#0" expanded="false" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/Vector.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="204">
@@ -953,64 +1067,138 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/Main.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="420">
+          <caret line="22" column="23" lean-forward="false" selection-start-line="22" selection-start-column="23" selection-end-line="22" selection-end-column="23" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/test/com/java/xiaoqin/MainTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="384">
+          <caret line="20" column="2" lean-forward="true" selection-start-line="20" selection-start-column="2" selection-end-line="20" selection-end-column="2" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/test/main/com/java/xiaoqin/impl/ArrayListImplTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="288">
+          <caret line="14" column="0" lean-forward="true" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="744">
-          <caret line="34" column="0" lean-forward="false" selection-start-line="34" selection-start-column="0" selection-end-line="34" selection-end-column="0" />
+        <state relative-caret-position="444">
+          <caret line="96" column="36" lean-forward="false" selection-start-line="96" selection-start-column="36" selection-end-line="96" selection-end-column="36" />
           <folding>
             <element signature="imports" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
+    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/Optional.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="204">
+          <caret line="119" column="34" lean-forward="false" selection-start-line="119" selection-start-column="34" selection-end-line="119" selection-end-column="34" />
+          <folding>
+            <element signature="e#3486#3487#0" expanded="false" />
+            <element signature="e#3544#3545#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/BinaryTreeNode.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="499">
+          <caret line="79" column="36" lean-forward="false" selection-start-line="79" selection-start-column="36" selection-end-line="79" selection-end-column="36" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://$APPLICATION_HOME_DIR$/lib/junit-4.12.jar!/org/junit/internal/runners/model/ReflectiveCallable.class">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="192">
+          <caret line="9" column="62" lean-forward="false" selection-start-line="9" selection-start-column="62" selection-end-line="9" selection-end-column="62" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="984">
+        <state relative-caret-position="182">
           <caret line="41" column="15" lean-forward="false" selection-start-line="41" selection-start-column="15" selection-end-line="41" selection-end-column="15" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/BinaryTreeNode.java">
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IQueue.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1608">
-          <caret line="79" column="36" lean-forward="false" selection-start-line="79" selection-start-column="36" selection-end-line="79" selection-end-column="36" />
+        <state relative-caret-position="312">
+          <caret line="13" column="15" lean-forward="true" selection-start-line="13" selection-start-column="3" selection-end-line="13" selection-end-column="15" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="444">
+          <caret line="115" column="13" lean-forward="true" selection-start-line="115" selection-start-column="13" selection-end-line="115" selection-end-column="13" />
           <folding>
-            <element signature="e#228#229#0" expanded="true" />
-            <element signature="e#255#256#0" expanded="true" />
-            <element signature="e#290#291#0" expanded="true" />
-            <element signature="e#322#323#0" expanded="true" />
-            <element signature="e#366#367#0" expanded="true" />
-            <element signature="e#398#399#0" expanded="true" />
-            <element signature="e#456#457#0" expanded="true" />
-            <element signature="e#498#499#0" expanded="true" />
-            <element signature="e#543#544#0" expanded="true" />
-            <element signature="e#576#577#0" expanded="true" />
-            <element signature="e#636#637#0" expanded="true" />
-            <element signature="e#680#681#0" expanded="true" />
+            <element signature="e#2794#2795#0" expanded="true" />
+            <element signature="e#2816#2817#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/ArrayListImplTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1142">
+          <caret line="105" column="5" lean-forward="true" selection-start-line="46" selection-start-column="3" selection-end-line="105" selection-end-column="5" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/LinkedListImplTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="267">
+          <caret line="34" column="9" lean-forward="true" selection-start-line="32" selection-start-column="8" selection-end-line="34" selection-end-column="9" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/IQueueImplTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="144">
+          <caret line="18" column="34" lean-forward="false" selection-start-line="18" selection-start-column="34" selection-end-line="18" selection-end-column="34" />
+          <folding>
+            <element signature="imports" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/StackImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="912">
-          <caret line="38" column="5" lean-forward="false" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
+        <state relative-caret-position="-48">
+          <caret line="13" column="0" lean-forward="false" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
           <folding>
-            <element signature="e#207#208#0" expanded="true" />
             <element signature="e#229#230#0" expanded="true" />
-            <element signature="e#750#751#0" expanded="true" />
-            <element signature="e#788#789#0" expanded="true" />
-            <element signature="e#875#876#0" expanded="true" />
-            <element signature="e#910#911#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/Main.java">
+    <entry file="file://$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/IStackImplTest.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="420">
-          <caret line="22" column="23" lean-forward="true" selection-start-line="22" selection-start-column="23" selection-end-line="22" selection-end-column="23" />
+        <state relative-caret-position="273">
+          <caret line="35" column="27" lean-forward="true" selection-start-line="35" selection-start-column="27" selection-end-line="35" selection-end-column="27" />
           <folding>
             <element signature="imports" expanded="true" />
           </folding>
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/job_2017_02_19_data_structure.iml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/job_2017_02_19_data_structure.iml
index d5c0743275..3a8ffcf1f5 100644
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/job_2017_02_19_data_structure.iml
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/job_2017_02_19_data_structure.iml
@@ -7,6 +7,15 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module-library">
+      <library name="JUnit4">
+        <CLASSES>
+          <root url="jar://$APPLICATION_HOME_DIR$/lib/junit-4.12.jar!/" />
+          <root url="jar://$APPLICATION_HOME_DIR$/lib/hamcrest-core-1.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
   </component>
-</module>
-
+</module>
\ No newline at end of file
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/ArrayListImpl.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/ArrayListImpl.java
index 8344ec35dd..27ee61ce66 100644
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/ArrayListImpl.java
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/ArrayListImpl.java
@@ -87,6 +87,16 @@ public IIterator<T> iterator() {
         return new ArrayIteratorImpl<>();
     }
 
+    @Override
+    public String toString() {
+        StringBuilder sbToString = new StringBuilder();
+        for (T t :
+                data) {
+            sbToString.append(t).append("\t");
+        }
+        return sbToString.toString();
+    }
+
     private void group(int minSize) {
         if (minSize >= data.length) {
             T[] temp = (T[]) new Object[size];
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/LinkedListImpl.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/LinkedListImpl.java
index b43e6ec863..7d8ad60419 100644
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/LinkedListImpl.java
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/impl/LinkedListImpl.java
@@ -48,7 +48,7 @@ public void add(int index, T t) {
             node.left.right.data = t;
             node.left = node.left.right;
         }
-        while (node.right != null) {
+        while (node != null) {
             node.index++;
             node = node.right;
         }
@@ -149,11 +149,30 @@ public IIterator<T> iterator() {
         return new LinkedIteratorImpl<>();
     }
 
+    @Override
+    public String toString() {
+        StringBuilder sbToString = new StringBuilder();
+        Node<T> temp = head;
+        while (null != temp){
+            sbToString.append(temp.toString()).append("\n");
+            temp = temp.right;
+        }
+        return sbToString.toString();
+    }
+
     private static class Node<T> {
         private T data = null;
         private Node<T> left = null;
         private Node<T> right = null;
         private int index = 0;
+
+        @Override
+        public String toString() {
+            return "Node{" +
+                    "data=" + data +
+                    ", index=" + index +
+                    '}';
+        }
     }
 
     private class LinkedIteratorImpl<T> implements IIterator<T> {
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/ArrayListImplTest.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/ArrayListImplTest.java
new file mode 100644
index 0000000000..ce6d903ff2
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/ArrayListImplTest.java
@@ -0,0 +1,107 @@
+package test.com.java.xiaoqin.impl;
+
+import com.java.xiaoqin.impl.ArrayListImpl;
+import com.java.xiaoqin.interfaces.IIterator;
+import com.java.xiaoqin.interfaces.IList;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * ArrayListImpl Tester.
+ *
+ * @author <Authors name>
+ * @version 1.0
+ * @since <pre>二月 26, 2017</pre>
+ */
+public class ArrayListImplTest {
+
+    private IList<Integer> mList;
+
+    @Before
+    public void before() throws Exception {
+        mList = new ArrayListImpl<>();
+    }
+
+    @After
+    public void after() throws Exception {
+        mList = null;
+    }
+
+    private void addTen() {
+        for (int i = 0; i < 10; i++) {
+            mList.add(i);
+        }
+    }
+
+    /**
+     * Method: add(T t)
+     */
+    @Test
+    public void testAddT() throws Exception {
+        addTen();
+        System.out.println(mList.toString());
+    }
+
+    /**
+     * Method: add(int index, T t)
+     */
+    @Test
+    public void testAddForIndexT() throws Exception {
+        addTen();
+        mList.add(4, 50);
+        mList.add(8, 150);
+        System.out.println(mList.toString());
+    }
+
+    /**
+     * Method: get(int index)
+     */
+    @Test
+    public void testGet() throws Exception {
+        addTen();
+        Assert.assertEquals(mList.get(5), (Integer) 5);
+    }
+
+    /**
+     * Method: remove(int index)
+     */
+    @Test
+    public void testRemove() throws Exception {
+        addTen();
+        Assert.assertEquals(mList.remove(4), (Integer) 4);
+        System.out.println(mList);
+    }
+
+    /**
+     * Method: size()
+     */
+    @Test
+    public void testSize() throws Exception {
+        addTen();
+        Assert.assertEquals(mList.size(), 10);
+    }
+
+    /**
+     * Method: isEmpty()
+     */
+    @Test
+    public void testIsEmpty() throws Exception {
+        System.out.println(mList.isEmpty());
+        addTen();
+        System.out.println(mList.isEmpty());
+    }
+
+    /**
+     * Method: iterator()
+     */
+    @Test
+    public void testIterator() throws Exception {
+        addTen();
+        IIterator<Integer> iterator = mList.iterator();
+        while (iterator.hasNext()) {
+            System.out.println(iterator.next());
+        }
+    }
+}
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/IQueueImplTest.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/IQueueImplTest.java
new file mode 100644
index 0000000000..14bbcac149
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/IQueueImplTest.java
@@ -0,0 +1,77 @@
+package test.com.java.xiaoqin.impl;
+
+import com.java.xiaoqin.impl.LinkedListImpl;
+import com.java.xiaoqin.interfaces.IQueue;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * IQueueImplTest Tester.
+ *
+ * @author <Authors name>
+ * @version 1.0
+ * @since <pre>二月 26, 2017</pre>
+ */
+public class IQueueImplTest {
+
+    private IQueue<Integer> mQueue;
+
+    @Before
+    public void before() throws Exception {
+        mQueue = new LinkedListImpl<>();
+    }
+
+    @After
+    public void after() throws Exception {
+        mQueue = null;
+    }
+
+    /**
+     * Method: enQueue(T t)
+     */
+    @Test
+    public void enQueueT() throws Exception {
+        for (int i = 0; i < 10; i++) {
+            mQueue.enQueue(i);
+        }
+        System.out.println(mQueue.toString());
+    }
+
+    /**
+     * Method: deQueue
+     */
+    @Test
+    public void deQueue() throws Exception {
+        for (int i = 0; i < 10; i++) {
+            mQueue.enQueue(i);
+        }
+        Assert.assertEquals(mQueue.deQueue(), (Integer) 0);
+        Assert.assertEquals(mQueue.deQueue(), (Integer) 1);
+    }
+
+    /**
+     * Method: isEmpty
+     */
+    @Test
+    public void isEmpty() throws Exception {
+        Assert.assertEquals(true, mQueue.isEmpty());
+        for (int i = 0; i < 10; i++) {
+            mQueue.enQueue(i);
+        }
+        Assert.assertEquals(false, mQueue.isEmpty());
+    }
+
+    /**
+     * Method:  size();
+     */
+    @Test
+    public void size() throws Exception {
+        for (int i = 0; i < 10; i++) {
+            mQueue.enQueue(i);
+        }
+        Assert.assertEquals(10, mQueue.size());
+    }
+
+} 
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/IStackImplTest.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/IStackImplTest.java
new file mode 100644
index 0000000000..a55667aadb
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/IStackImplTest.java
@@ -0,0 +1,90 @@
+package test.com.java.xiaoqin.impl;
+
+import com.java.xiaoqin.impl.StackImpl;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * IQueueImplTest Tester.
+ *
+ * @author <Authors name>
+ * @version 1.0
+ * @since <pre>二月 26, 2017</pre>
+ */
+public class IStackImplTest {
+
+    private StackImpl<Integer> mStack;
+
+    @Before
+    public void before() throws Exception {
+        mStack = new StackImpl<>();
+    }
+
+    @After
+    public void after() throws Exception {
+        mStack = null;
+    }
+
+    /**
+     * Method: push(T t)
+     */
+    @Test
+    public void pushT() throws Exception {
+        for (int i = 0; i < 10; i++) {
+            mStack.push(i);
+        }
+        System.out.println(mStack.toString());
+    }
+
+    /**
+     * Method: pop
+     */
+    @Test
+    public void pop() throws Exception {
+        for (int i = 0; i < 10; i++) {
+            mStack.push(i);
+        }
+        Assert.assertEquals(mStack.pop(), (Integer) 9);
+        Assert.assertEquals(mStack.pop(), (Integer) 8);
+    }
+
+    /**
+     * Method: peek
+     */
+    @Test
+    public void peek() throws Exception {
+        Assert.assertEquals(true, mStack.isEmpty());
+        for (int i = 0; i < 10; i++) {
+            mStack.push(i);
+        }
+        Assert.assertEquals(mStack.peek(), (Integer) 9);
+        Assert.assertEquals(mStack.peek(), (Integer) 9);
+        Assert.assertEquals(mStack.peek(), (Integer) 9);
+    }
+
+    /**
+     * Method: isEmpty
+     */
+    @Test
+    public void isEmpty() throws Exception {
+        Assert.assertEquals(true, mStack.isEmpty());
+        for (int i = 0; i < 10; i++) {
+            mStack.push(i);
+        }
+        Assert.assertEquals(false, mStack.isEmpty());
+    }
+
+    /**
+     * Method:  size();
+     */
+    @Test
+    public void size() throws Exception {
+        for (int i = 0; i < 10; i++) {
+            mStack.push(i);
+        }
+        Assert.assertEquals(10, mStack.size());
+    }
+
+} 
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/LinkedListImplTest.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/LinkedListImplTest.java
new file mode 100644
index 0000000000..669f88d9b1
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/LinkedListImplTest.java
@@ -0,0 +1,108 @@
+package test.com.java.xiaoqin.impl;
+
+import com.java.xiaoqin.impl.LinkedListImpl;
+import com.java.xiaoqin.interfaces.IIterator;
+import com.java.xiaoqin.interfaces.IList;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * LinkedListImpl Tester.
+ *
+ * @author <Authors name>
+ * @version 1.0
+ * @since <pre>二月 26, 2017</pre>
+ */
+public class LinkedListImplTest {
+
+    private IList<Integer> mList;
+
+    @Before
+    public void before() throws Exception {
+        mList = new LinkedListImpl<>();
+    }
+
+    @After
+    public void after() throws Exception {
+        mList = null;
+    }
+
+    private void addTen() {
+        for (int i = 0; i < 10; i++) {
+            mList.add(i);
+        }
+    }
+
+    /**
+     * Method: add(T t)
+     */
+    @Test
+    public void testAddT() throws Exception {
+        addTen();
+        System.out.println(mList.toString());
+    }
+
+    /**
+     * Method: add(int index, T t)
+     */
+    @Test
+    public void testAddForIndexT() throws Exception {
+        addTen();
+        mList.add(4, 50);
+        mList.add(8, 150);
+        System.out.println(mList.toString());
+    }
+
+    /**
+     * Method: get(int index)
+     */
+    @Test
+    public void testGet() throws Exception {
+        addTen();
+        Assert.assertEquals(mList.get(5), (Integer) 5);
+    }
+
+    /**
+     * Method: remove(int index)
+     */
+    @Test
+    public void testRemove() throws Exception {
+        addTen();
+        Assert.assertEquals(mList.remove(4), (Integer) 4);
+        System.out.println(mList);
+    }
+
+    /**
+     * Method: size()
+     */
+    @Test
+    public void testSize() throws Exception {
+        addTen();
+        Assert.assertEquals(mList.size(), 10);
+    }
+
+    /**
+     * Method: isEmpty()
+     */
+    @Test
+    public void testIsEmpty() throws Exception {
+        System.out.println(mList.isEmpty());
+        addTen();
+        System.out.println(mList.isEmpty());
+    }
+
+    /**
+     * Method: iterator()
+     */
+    @Test
+    public void testIterator() throws Exception {
+        addTen();
+        IIterator<Integer> iterator = mList.iterator();
+        while (iterator.hasNext()) {
+            System.out.println(iterator.next());
+        }
+    }
+
+} 

From cfd1153f389a02c5941caf6b1e4ae51670a48457 Mon Sep 17 00:00:00 2001
From: xiaoqin0000 <xiaoqin0000@gmail.com>
Date: Sun, 26 Feb 2017 23:55:37 +0800
Subject: [PATCH 21/31] pull && merge

---
 .../.idea/workspace.xml                       | 66 +++++++++----------
 1 file changed, 32 insertions(+), 34 deletions(-)

diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
index 4f4fb93323..f132307105 100644
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
@@ -16,11 +16,11 @@
   <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file leaf-file-name="IStackImplTest.java" pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/IStackImplTest.java">
+      <file leaf-file-name="ArrayListImpl.java" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="273">
-              <caret line="35" column="27" lean-forward="true" selection-start-line="35" selection-start-column="27" selection-end-line="35" selection-end-column="27" />
+            <state relative-caret-position="60">
+              <caret line="96" column="36" lean-forward="false" selection-start-line="96" selection-start-column="36" selection-end-line="96" selection-end-column="36" />
               <folding>
                 <element signature="imports" expanded="true" />
               </folding>
@@ -28,18 +28,6 @@
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="StackImpl.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/StackImpl.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-48">
-              <caret line="13" column="0" lean-forward="false" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
-              <folding>
-                <element signature="e#229#230#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
     </leaf>
   </component>
   <component name="FileTemplateManagerImpl">
@@ -744,14 +732,11 @@
       <workItem from="1488008949618" duration="15019000" />
       <workItem from="1488080914888" duration="4730000" />
       <workItem from="1488110875466" duration="4842000" />
-      <workItem from="1488121601736" duration="2774000" />
+      <workItem from="1488121601736" duration="2870000" />
     </task>
     <servers />
   </component>
   <component name="TestHistory">
-    <history-entry file="IQueueImplTest_isEmpty - 2017.02.26 at 23h 47m 59s.xml">
-      <configuration name="IQueueImplTest.isEmpty" configurationId="JUnit" />
-    </history-entry>
     <history-entry file="IQueueImplTest_size - 2017.02.26 at 23h 48m 20s.xml">
       <configuration name="IQueueImplTest.size" configurationId="JUnit" />
     </history-entry>
@@ -776,16 +761,19 @@
     <history-entry file="IStackImplTest_pop - 2017.02.26 at 23h 52m 53s.xml">
       <configuration name="IStackImplTest.pop" configurationId="JUnit" />
     </history-entry>
+    <history-entry file="IStackImplTest_pushT - 2017.02.26 at 23h 52m 56s.xml">
+      <configuration name="IStackImplTest.pushT" configurationId="JUnit" />
+    </history-entry>
     <history-entry file="IStackImplTest_size - 2017.02.26 at 23h 52m 42s.xml">
       <configuration name="IStackImplTest.size" configurationId="JUnit" />
     </history-entry>
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="27365000" />
+    <option name="totallyTimeSpent" value="27461000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="0" y="0" width="1920" height="1054" extended-state="0" />
-    <editor active="true" />
+    <editor active="false" />
     <layout>
       <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
@@ -797,9 +785,9 @@
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
       <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24973877" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
@@ -1000,6 +988,10 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="545">
           <caret line="53" column="11" lean-forward="false" selection-start-line="53" selection-start-column="11" selection-end-line="53" selection-end-column="11" />
+          <folding>
+            <element signature="e#1035#1036#0" expanded="false" />
+            <element signature="e#1094#1095#0" expanded="false" />
+          </folding>
         </state>
       </provider>
     </entry>
@@ -1043,6 +1035,10 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="195">
           <caret line="269" column="0" lean-forward="false" selection-start-line="269" selection-start-column="0" selection-end-line="269" selection-end-column="0" />
+          <folding>
+            <element signature="e#20484#20485#0" expanded="false" />
+            <element signature="e#20520#20521#0" expanded="false" />
+          </folding>
         </state>
       </provider>
     </entry>
@@ -1057,6 +1053,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="204">
           <caret line="617" column="29" lean-forward="false" selection-start-line="617" selection-start-column="29" selection-end-line="617" selection-end-column="29" />
+          <folding />
         </state>
       </provider>
     </entry>
@@ -1064,6 +1061,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="132">
           <caret line="66" column="13" lean-forward="false" selection-start-line="66" selection-start-column="13" selection-end-line="66" selection-end-column="13" />
+          <folding />
         </state>
       </provider>
     </entry>
@@ -1093,16 +1091,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="444">
-          <caret line="96" column="36" lean-forward="false" selection-start-line="96" selection-start-column="36" selection-end-line="96" selection-end-column="36" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/Optional.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="204">
@@ -1205,5 +1193,15 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="60">
+          <caret line="96" column="36" lean-forward="false" selection-start-line="96" selection-start-column="36" selection-end-line="96" selection-end-column="36" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>
\ No newline at end of file

From ce769fdeadedfc820f74a0fede0492dfe982cb0c Mon Sep 17 00:00:00 2001
From: "songbao.yang" <songbao.yang@qunar.com>
Date: Sun, 26 Feb 2017 23:55:49 +0800
Subject: [PATCH 22/31] task1

---
 group05/578505552/.gitignore                  |  17 +++
 group05/578505552/578505552.iml               |  16 +++
 group05/578505552/pom.xml                     |  24 ++++
 .../main/java/com/coding/basic/ArrayList.java | 104 ++++++++++++++++++
 .../java/com/coding/basic/BinaryTreeNode.java |  36 ++++++
 .../main/java/com/coding/basic/Iterator.java  |  11 ++
 .../java/com/coding/basic/LinkedList.java     | 100 +++++++++++++++++
 .../src/main/java/com/coding/basic/List.java  |  13 +++
 .../src/main/java/com/coding/basic/Queue.java |  90 +++++++++++++++
 .../src/main/java/com/coding/basic/Stack.java |  63 +++++++++++
 group05/578505552/src/test/java/JavaTest.java |  25 +++++
 .../java/com/coding/basic/ArrayListTest.java  |  97 ++++++++++++++++
 .../test/java/com/coding/basic/QueueTest.java |  75 +++++++++++++
 .../test/java/com/coding/basic/StackTest.java |  65 +++++++++++
 14 files changed, 736 insertions(+)
 create mode 100644 group05/578505552/.gitignore
 create mode 100644 group05/578505552/578505552.iml
 create mode 100644 group05/578505552/pom.xml
 create mode 100644 group05/578505552/src/main/java/com/coding/basic/ArrayList.java
 create mode 100644 group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java
 create mode 100644 group05/578505552/src/main/java/com/coding/basic/Iterator.java
 create mode 100644 group05/578505552/src/main/java/com/coding/basic/LinkedList.java
 create mode 100644 group05/578505552/src/main/java/com/coding/basic/List.java
 create mode 100644 group05/578505552/src/main/java/com/coding/basic/Queue.java
 create mode 100644 group05/578505552/src/main/java/com/coding/basic/Stack.java
 create mode 100644 group05/578505552/src/test/java/JavaTest.java
 create mode 100644 group05/578505552/src/test/java/com/coding/basic/ArrayListTest.java
 create mode 100644 group05/578505552/src/test/java/com/coding/basic/QueueTest.java
 create mode 100644 group05/578505552/src/test/java/com/coding/basic/StackTest.java

diff --git a/group05/578505552/.gitignore b/group05/578505552/.gitignore
new file mode 100644
index 0000000000..05ba5e4384
--- /dev/null
+++ b/group05/578505552/.gitignore
@@ -0,0 +1,17 @@
+*.class
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.ear
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+#ide config
+.metadata
+.recommenders
+.idea/
diff --git a/group05/578505552/578505552.iml b/group05/578505552/578505552.iml
new file mode 100644
index 0000000000..faa2a57144
--- /dev/null
+++ b/group05/578505552/578505552.iml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5" inherit-compiler-output="false">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
+    <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/group05/578505552/pom.xml b/group05/578505552/pom.xml
new file mode 100644
index 0000000000..3e841624e0
--- /dev/null
+++ b/group05/578505552/pom.xml
@@ -0,0 +1,24 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>com.coding2017.yang</groupId>
+  <artifactId>basic</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+  <name>basic</name>
+  <url>http://maven.apache.org</url>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.12</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/group05/578505552/src/main/java/com/coding/basic/ArrayList.java b/group05/578505552/src/main/java/com/coding/basic/ArrayList.java
new file mode 100644
index 0000000000..1620048907
--- /dev/null
+++ b/group05/578505552/src/main/java/com/coding/basic/ArrayList.java
@@ -0,0 +1,104 @@
+package com.coding.basic;
+
+import java.util.NoSuchElementException;
+
+/**
+ * Created by songbao.yang on 2017/2/21.
+ *
+ */
+public class ArrayList implements List {
+	
+	private int size = 0;
+	private Object[] elementData;
+    private static final int MIN_CAPACITY = 10;
+
+    public ArrayList(int size) {
+        if (size < 0){
+            throw new IllegalArgumentException("illega size: " + size);
+        }
+        this.elementData = new Object[size];
+    }
+
+    public ArrayList() {
+        this.elementData = new Object[0];
+    }
+
+    public void add(Object o){
+        ensureCapacity(size + 1);
+		elementData[size++] = o;
+	}
+
+	private void ensureCapacity(int minCapacity){
+	    if (minCapacity < 0 ){
+	        throw new OutOfMemoryError();
+        }
+
+	    int newCapcity = size;
+	    if(minCapacity < MIN_CAPACITY){
+	        newCapcity = MIN_CAPACITY;
+        } else if(minCapacity > elementData.length){
+            int tmp = elementData.length << 1;
+            newCapcity = tmp > elementData.length ? tmp : Integer.MAX_VALUE;
+        }
+
+        newCapcity = minCapacity;
+        Object[] newData = new Object[newCapcity];
+        System.arraycopy(elementData, 0, newData, 0, size);
+         elementData = newData;
+    }
+
+	public void add(int index, Object o){
+	    indexCheck(index);
+        ensureCapacity(size+1);
+        System.arraycopy(elementData, index, elementData, index+1, size-index);
+        elementData[index] = o;
+        size++;
+	}
+	
+	public Object get(int index){
+		indexCheck(index);
+		return elementData[index];
+	}
+
+	private void indexCheck(int index){
+		if(index < 0){
+			throw new IllegalArgumentException("illegal index: " + index);
+		}
+		if(index >= size){
+		    throw new IndexOutOfBoundsException();
+        }
+	}
+
+	public Object remove(int index){
+        indexCheck(index);
+        Object rm = elementData[index];
+        System.arraycopy(elementData, index+1, elementData, index, size-index-1);
+        size--;
+		return rm;
+	}
+	
+	public int size(){
+		return size;
+	}
+	
+	public Iterator iterator(){
+		return new Itr();
+	}
+
+	//静态内部类的访问权限不同有何区别？？
+	private class Itr implements Iterator{
+        private int cursor = 0;
+
+        public boolean hasNext() {
+            return cursor != size;
+        }
+
+        public Object next() {
+            if (hasNext()){
+                return elementData[cursor++];
+            }
+
+            throw new NoSuchElementException();
+        }
+    }
+}
diff --git a/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java b/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java
new file mode 100644
index 0000000000..0169aeb79a
--- /dev/null
+++ b/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java
@@ -0,0 +1,36 @@
+package com.coding.basic;
+
+/**
+ * Created by songbao.yang on 2017/2/21.
+ *
+ */
+public class BinaryTreeNode {
+	
+	private Object data;
+	private BinaryTreeNode left;
+	private BinaryTreeNode right;
+	
+	public Object getData() {
+		return data;
+	}
+	public void setData(Object data) {
+		this.data = data;
+	}
+	public BinaryTreeNode getLeft() {
+		return left;
+	}
+	public void setLeft(BinaryTreeNode left) {
+		this.left = left;
+	}
+	public BinaryTreeNode getRight() {
+		return right;
+	}
+	public void setRight(BinaryTreeNode right) {
+		this.right = right;
+	}
+	
+	public BinaryTreeNode insert(Object o){
+		return  null;
+	}
+	
+}
diff --git a/group05/578505552/src/main/java/com/coding/basic/Iterator.java b/group05/578505552/src/main/java/com/coding/basic/Iterator.java
new file mode 100644
index 0000000000..6765eae519
--- /dev/null
+++ b/group05/578505552/src/main/java/com/coding/basic/Iterator.java
@@ -0,0 +1,11 @@
+package com.coding.basic;
+
+/**
+ * Created by songbao.yang on 2017/2/21.
+ *
+ */
+public interface Iterator {
+	public boolean hasNext();
+	public Object next();
+
+}
diff --git a/group05/578505552/src/main/java/com/coding/basic/LinkedList.java b/group05/578505552/src/main/java/com/coding/basic/LinkedList.java
new file mode 100644
index 0000000000..c3eeb54950
--- /dev/null
+++ b/group05/578505552/src/main/java/com/coding/basic/LinkedList.java
@@ -0,0 +1,100 @@
+package com.coding.basic;
+
+/**
+ * Created by songbao.yang on 2017/2/21.
+ *
+ */
+public class LinkedList implements List {
+	
+	private Node head;
+	private int elementCount;
+
+    //head作为一个节点，其next的值指向List中的真正的第一个节点
+	public LinkedList() {
+        Node head = new Node();
+        head.next = null;
+        head.data = null;
+        elementCount = 0;
+	}
+
+	public void add(Object o){
+		Node newNode = new Node();
+		newNode.data = o;
+        newNode.next = null;
+
+		Node cursor = head;
+        while (cursor.next != null){
+            cursor = cursor.next;
+        }
+        cursor.next = newNode;
+		elementCount++;
+	}
+
+
+	public void add(int index , Object o){
+        indexRangeCheck(index);
+        Node newNode = new Node();
+        newNode.data = o;
+
+        Node cursor = head;
+        for (int i = 0; i < index; i++) {
+            cursor = cursor.next;  //将cursor移动到index-1节点处；
+        }
+
+        newNode.next = cursor.next; //将新节点指向原index处的节点
+        cursor.next = newNode;//将原index-1处的节点指向新节点
+        elementCount++;
+    }
+
+	private void indexRangeCheck(int index){
+	    if (index < 0 || index >= size()){
+	        throw new IndexOutOfBoundsException();
+        }
+    }
+
+	public Object get(int index){
+		indexRangeCheck(index);
+        Node cursor = head;
+        for (int i = 0; i < index; i++) {
+            cursor = cursor.next;
+        }
+        return cursor.next;
+    }
+
+	public Object remove(int index){
+	    indexRangeCheck(index);
+        Node cursor = head;
+        for (int i = 0; i < index; i++) {
+            cursor = cursor.next;
+        }
+        Node indexNode = cursor.next;
+        cursor.next = indexNode.next;
+		return indexNode;
+	}
+	
+	public int size(){
+		return elementCount;
+	}
+	
+	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/group05/578505552/src/main/java/com/coding/basic/List.java b/group05/578505552/src/main/java/com/coding/basic/List.java
new file mode 100644
index 0000000000..a979b2fdb9
--- /dev/null
+++ b/group05/578505552/src/main/java/com/coding/basic/List.java
@@ -0,0 +1,13 @@
+package com.coding.basic;
+
+/**
+ * Created by songbao.yang on 2017/2/21.
+ *
+ */
+public interface List {
+	public void add(Object o);
+	public void add(int index, Object o);
+	public Object get(int index);
+	public Object remove(int index);
+	public int size();
+}
diff --git a/group05/578505552/src/main/java/com/coding/basic/Queue.java b/group05/578505552/src/main/java/com/coding/basic/Queue.java
new file mode 100644
index 0000000000..ec31573ee7
--- /dev/null
+++ b/group05/578505552/src/main/java/com/coding/basic/Queue.java
@@ -0,0 +1,90 @@
+package com.coding.basic;
+
+import java.util.NoSuchElementException;
+
+/**
+ * Created by songbao.yang on 2017/2/22.
+ *
+ */
+public class Queue {
+
+    private Object[] elementData;
+    private int head; //对头的位置
+    private int tail; //队尾的位置
+    private int size; //队列中元素的个数
+    private static final int MIN_INITIAL_CAPACITY = 10;
+
+    public Queue() {
+        this.elementData = new Object[MIN_INITIAL_CAPACITY];
+        this.head = 0;
+        this.tail = 0;
+        this.size = 0;
+    }
+
+    public Queue(int initCapcacity) {
+        if (initCapcacity < MIN_INITIAL_CAPACITY){
+            initCapcacity = MIN_INITIAL_CAPACITY;
+        }
+        this.elementData = new Object[initCapcacity];
+        this.head = 0;
+        this.tail = 0;
+        this.size = 0;
+    }
+
+    public void enQueue(Object o){
+        ensureCapacity(size+1);
+        if(size != 0){
+            tail++;
+        }
+        if(tail == elementData.length){
+            tail = 0;
+        }
+        elementData[tail] = o;
+        size++;
+    }
+
+    private void ensureCapacity(int minCapcacity){
+        if(minCapcacity <= elementData.length){
+            return;
+        }
+
+        int newCapcacity = elementData.length << 1;
+        if (newCapcacity < elementData.length){
+            newCapcacity = Integer.MAX_VALUE;
+        }
+
+        Object[] newData = new Object[newCapcacity];
+        if(size != 0){
+            if(tail >= head){
+                System.arraycopy(elementData, head, newData, 0, size);
+            } else {
+                System.arraycopy(elementData, head, newData, 0, elementData.length - head);
+                System.arraycopy(elementData, 0, newData, elementData.length - head, tail + 1);
+            }
+            elementData = newData;
+            head = 0;
+            tail = this.size - 1;
+        }
+    }
+
+    public Object deQueue(){
+        if (isEmpty()){
+            throw new NoSuchElementException("empty queue");
+        }
+        Object ele = elementData[head];
+        size--;
+        head++;
+        if(head == elementData.length){
+            head = 0;
+        }
+        return ele;
+    }
+
+    public boolean isEmpty(){
+        return size == 0;
+    }
+
+    public int size(){
+        return size;
+    }
+}
diff --git a/group05/578505552/src/main/java/com/coding/basic/Stack.java b/group05/578505552/src/main/java/com/coding/basic/Stack.java
new file mode 100644
index 0000000000..ffc4915bef
--- /dev/null
+++ b/group05/578505552/src/main/java/com/coding/basic/Stack.java
@@ -0,0 +1,63 @@
+package com.coding.basic;
+
+
+import java.util.EmptyStackException;
+
+/**
+ * Created by songbao.yang on 2017/2/22.
+ *
+ */
+public class Stack {
+
+    private Object[] elementData;
+    private static final int MIN_INITIAL_CAPACITY = 10;
+    private int cursor;
+
+    public Stack() {
+        elementData = new Object[MIN_INITIAL_CAPACITY];
+        cursor = -1;
+    }
+
+    public void push(Object o){
+        ensureCapacity(size() + 1);
+        cursor++;
+        elementData[cursor] = o;
+	}
+
+	private void ensureCapacity(int minCapacity){
+        if(minCapacity <= elementData.length){
+            return;
+        }
+
+        int newSize = elementData.length << 1;
+        if (newSize < elementData.length){
+            newSize = Integer.MAX_VALUE;
+        }
+
+        Object[] newDataArray = new Object[newSize];
+        System.arraycopy(elementData, 0, newDataArray, 0, size());
+        elementData = newDataArray;
+    }
+
+
+    public Object pop(){
+        Object ele = peek();
+        cursor--;
+        return ele;
+    }
+	
+	public Object peek(){
+	    if (isEmpty()){
+            throw new EmptyStackException();
+        }
+		return elementData[cursor];
+	}
+
+	public boolean isEmpty(){
+		return size() == 0;
+	}
+
+	public int size(){
+		return cursor + 1;
+	}
+}
diff --git a/group05/578505552/src/test/java/JavaTest.java b/group05/578505552/src/test/java/JavaTest.java
new file mode 100644
index 0000000000..26d2197ffe
--- /dev/null
+++ b/group05/578505552/src/test/java/JavaTest.java
@@ -0,0 +1,25 @@
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.Queue;
+import java.util.Stack;
+
+/**
+ * Created by songbao.yang on 2017/2/21.
+ */
+public class JavaTest {
+
+    public static void main(String[] args) {
+
+        ArrayList<String> ss = new ArrayList<String>();
+        ss.add("a");
+        ss.add("b");
+        ss.add("c");
+        ss.add("d");
+
+        System.out.println(ss.size());
+        ss.remove(0);
+        System.out.println(ss.size());
+
+
+    }
+}
diff --git a/group05/578505552/src/test/java/com/coding/basic/ArrayListTest.java b/group05/578505552/src/test/java/com/coding/basic/ArrayListTest.java
new file mode 100644
index 0000000000..87b9906c29
--- /dev/null
+++ b/group05/578505552/src/test/java/com/coding/basic/ArrayListTest.java
@@ -0,0 +1,97 @@
+package com.coding.basic;
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Created by songbao.yang on 2017/2/21.
+ *
+ */
+public class ArrayListTest {
+
+    private ArrayList list;
+
+    public static final int SIZE = 10000;
+
+    @Before
+    public void setUp() throws Exception {
+
+        list = new ArrayList();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+
+    }
+
+    @Test
+    public void add() throws Exception {
+
+        for (int i = 0; i < SIZE; i++) {
+            list.add(i);
+            Assert.assertEquals(i+1, list.size());
+        }
+    }
+
+    @Test
+    public void add1() throws Exception {
+
+        add();
+        for (int i = 0; i < 1000; i++) {
+            int oldSize = list.size();
+            int randomIndex = (int)Math.floor(Math.random() * oldSize);
+
+            list.add(randomIndex, randomIndex);
+            int newSize = list.size();
+
+            Assert.assertEquals(newSize, oldSize+1);
+            Assert.assertEquals(list.get(randomIndex), randomIndex);
+        }
+    }
+
+    @Test
+    public void get() throws Exception {
+
+        add();
+        for (int i = 0; i < SIZE * 100; i++) {
+            int randomIndex = (int)Math.floor(Math.random() * list.size());
+            if(randomIndex < 0 || randomIndex >= SIZE){
+                System.out.println("illegal index: " + randomIndex);
+                throw new RuntimeException();
+            }
+            int o = (Integer) list.get(randomIndex);
+            Assert.assertEquals(randomIndex, o);
+        }
+    }
+
+    @Test
+    public void remove() throws Exception {
+
+        add();
+        for (int i = 0; i < SIZE; i++) {
+            System.out.println("remove: " + i);
+            list.remove(0);
+        }
+
+    }
+
+    @Test
+    public void size() throws Exception {
+
+    }
+
+    @Test
+    public void iterator() throws Exception {
+        add();
+        Iterator iterator1 = list.iterator();
+        int i = 0;
+        while (iterator1.hasNext()){
+            Object next = iterator1.next();
+            Assert.assertEquals(i, next);
+            i++;
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/group05/578505552/src/test/java/com/coding/basic/QueueTest.java b/group05/578505552/src/test/java/com/coding/basic/QueueTest.java
new file mode 100644
index 0000000000..905054670d
--- /dev/null
+++ b/group05/578505552/src/test/java/com/coding/basic/QueueTest.java
@@ -0,0 +1,75 @@
+package com.coding.basic;
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Created by songbao.yang on 2017/2/24.
+ */
+public class QueueTest {
+
+    private static final int SIZE = 2000;
+    private Queue queue;
+
+    @Before
+    public void setUp() throws Exception {
+        queue = new Queue();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+
+    }
+
+    @Test
+    public void enQueue() throws Exception {
+        for (int i = 0; i < SIZE; i++) {
+            queue.enQueue(i);
+            Assert.assertEquals(i+1, queue.size());
+        }
+    }
+
+    @Test
+    public void deQueue1() throws Exception {
+        enQueue();
+
+        int i = 0;
+        int startSize = queue.size();
+        while (!queue.isEmpty()) {
+            Assert.assertEquals(startSize - i, queue.size());
+            Object o = queue.deQueue();
+            Assert.assertEquals(SIZE - i - 1, queue.size());
+            Assert.assertEquals(i, o);
+            i++;
+        }
+    }
+
+    @Test
+    public void deQueue2() throws Exception {
+        enQueue();
+        int startSize = queue.size();
+
+        for (int i = 0; i < startSize; i++) {
+            queue.deQueue();
+            Assert.assertEquals(startSize - 1, queue.size());
+            queue.enQueue(i+1000);
+            Assert.assertEquals(startSize, queue.size());
+        }
+
+    }
+
+    @Test
+    public void isEmpty() throws Exception {
+
+    }
+
+    @Test
+    public void size() throws Exception {
+
+    }
+
+}
\ No newline at end of file
diff --git a/group05/578505552/src/test/java/com/coding/basic/StackTest.java b/group05/578505552/src/test/java/com/coding/basic/StackTest.java
new file mode 100644
index 0000000000..b65d446c97
--- /dev/null
+++ b/group05/578505552/src/test/java/com/coding/basic/StackTest.java
@@ -0,0 +1,65 @@
+package com.coding.basic;
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Created by songbao.yang on 2017/2/24.
+ *
+ */
+public class StackTest {
+
+    private Stack stack;
+
+    public static final int SIZE = 100;
+
+    @Before
+    public void setUp() throws Exception {
+        stack = new Stack();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+
+    }
+
+    @Test
+    public void push() throws Exception {
+        for (int i = 0; i < SIZE; i++) {
+            stack.push(i);
+            Assert.assertEquals(i+1, stack.size());
+        }
+        System.out.println();
+    }
+
+    @Test
+    public void pop() throws Exception {
+        push();
+        int beginSize = stack.size();
+        for (int i = 0; i < beginSize; i++) {
+            Object ele = stack.pop();
+            Assert.assertEquals(beginSize-i-1, stack.size());
+            Assert.assertEquals(beginSize-i-1, ele);
+        }
+    }
+
+    @Test
+    public void peek() throws Exception {
+
+    }
+
+    @Test
+    public void isEmpty() throws Exception {
+
+    }
+
+    @Test
+    public void size() throws Exception {
+
+    }
+
+}
\ No newline at end of file

From 41254a089d060143f3584fb295673dad1cefaf30 Mon Sep 17 00:00:00 2001
From: xiaoqin0000 <xiaoqin0000@gmail.com>
Date: Sun, 26 Feb 2017 23:59:59 +0800
Subject: [PATCH 23/31] clear .idea

---
 .../.idea/compiler.xml                        |   23 -
 .../.idea/description.html                    |    1 -
 .../.idea/encodings.xml                       |    5 -
 .../.idea/misc.xml                            |   12 -
 .../.idea/modules.xml                         |    8 -
 .../.idea/uiDesigner.xml                      |  124 --
 .../.idea/vcs.xml                             |    7 -
 .../.idea/workspace.xml                       | 1207 -----------------
 8 files changed, 1387 deletions(-)
 delete mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/compiler.xml
 delete mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/description.html
 delete mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/encodings.xml
 delete mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/misc.xml
 delete mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/modules.xml
 delete mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/uiDesigner.xml
 delete mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/vcs.xml
 delete mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml

diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/compiler.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/compiler.xml
deleted file mode 100644
index 217af471a9..0000000000
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/compiler.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="CompilerConfiguration">
-    <option name="DEFAULT_COMPILER" value="Javac" />
-    <resourceExtensions />
-    <wildcardResourcePatterns>
-      <entry name="!?*.java" />
-      <entry name="!?*.form" />
-      <entry name="!?*.class" />
-      <entry name="!?*.groovy" />
-      <entry name="!?*.scala" />
-      <entry name="!?*.flex" />
-      <entry name="!?*.kt" />
-      <entry name="!?*.clj" />
-    </wildcardResourcePatterns>
-    <annotationProcessing>
-      <profile default="true" name="Default" enabled="false">
-        <processorPath useClasspath="true" />
-      </profile>
-    </annotationProcessing>
-  </component>
-</project>
-
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/description.html b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/description.html
deleted file mode 100644
index db5f129556..0000000000
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/description.html
+++ /dev/null
@@ -1 +0,0 @@
-<html>Simple <b>Java</b> application that includes a class with <code>main()</code> method</html>
\ No newline at end of file
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/encodings.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/encodings.xml
deleted file mode 100644
index e206d70d85..0000000000
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/encodings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
-</project>
-
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/misc.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/misc.xml
deleted file mode 100644
index 91362b9dce..0000000000
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/misc.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="EntryPointsManager">
-    <entry_points version="2.0" />
-  </component>
-  <component name="ProjectKey">
-    <option name="state" value="project://63537948-39a4-48a0-9c97-34259a0fa913" />
-  </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="Java1.8" project-jdk-type="JavaSDK">
-    <output url="file://$PROJECT_DIR$/out" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/modules.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/modules.xml
deleted file mode 100644
index 46ad2c6b17..0000000000
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectModuleManager">
-    <modules>
-      <module fileurl="file://$PROJECT_DIR$/job_2017_02_19_data_structure.iml" filepath="$PROJECT_DIR$/job_2017_02_19_data_structure.iml" />
-    </modules>
-  </component>
-</project>
\ No newline at end of file
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/uiDesigner.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/uiDesigner.xml
deleted file mode 100644
index e96534fb27..0000000000
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Palette2">
-    <group name="Swing">
-      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
-      </item>
-      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
-      </item>
-      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
-        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
-        <initial-values>
-          <property name="text" value="Button" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="RadioButton" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="CheckBox" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="Label" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
-          <preferred-size width="200" height="200" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
-          <preferred-size width="200" height="200" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
-      </item>
-      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
-          <preferred-size width="-1" height="20" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
-      </item>
-      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
-      </item>
-    </group>
-  </component>
-</project>
\ No newline at end of file
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/vcs.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/vcs.xml
deleted file mode 100644
index def6a6a184..0000000000
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/vcs.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="VcsDirectoryMappings">
-    <mapping directory="" vcs="" />
-  </component>
-</project>
-
diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
deleted file mode 100644
index f132307105..0000000000
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/.idea/workspace.xml
+++ /dev/null
@@ -1,1207 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ChangeListManager">
-    <list default="true" id="b05ed514-db23-4321-aeff-6ae25dcb5bd7" name="Default" comment="" />
-    <ignored path="$PROJECT_DIR$/out/" />
-    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
-    <option name="TRACKING_ENABLED" value="true" />
-    <option name="SHOW_DIALOG" value="false" />
-    <option name="HIGHLIGHT_CONFLICTS" value="true" />
-    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
-    <option name="LAST_RESOLUTION" value="IGNORE" />
-  </component>
-  <component name="CreatePatchCommitExecutor">
-    <option name="PATCH_PATH" value="" />
-  </component>
-  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
-  <component name="FileEditorManager">
-    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file leaf-file-name="ArrayListImpl.java" pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="60">
-              <caret line="96" column="36" lean-forward="false" selection-start-line="96" selection-start-column="36" selection-end-line="96" selection-end-column="36" />
-              <folding>
-                <element signature="imports" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-    </leaf>
-  </component>
-  <component name="FileTemplateManagerImpl">
-    <option name="RECENT_TEMPLATES">
-      <list>
-        <option value="Interface" />
-        <option value="Class" />
-      </list>
-    </option>
-  </component>
-  <component name="FindInProjectRecents">
-    <findStrings>
-      <find>package com.java.xiaoqin.impl;  import com.java.xiaoqin.interfaces.IList;  /**  * Created by xiaoqin on 17-2-25.  */ public class ArrayListImpl&lt;T&gt; implements IList&lt;T&gt; {      private static final int DEFAULT_INIT_SIZE = 20;      private T[] data;          private int size = 0;      public ArrayListImpl(){         this(DEFAULT_INIT_SIZE);     }      public ArrayListImpl(int capacity){         if (capacity &lt; 0){             throw new IllegalArgumentException(&quot;无效的capacity：&quot; + capacity);         }         if (0 == capacity){             capacity = DEFAULT_INIT_SIZE;         }         data = (T[]) new Object[capacity];     }      @Override     public void add(T t) {      }      @Override     public void add(int index, T t) {      }      @Override     public T get(int index) {         return null;     }      @Override     public T remove(int index) {         return null;     }      @Override     public int size() {         return 0;     } }</find>
-      <find>gro</find>
-      <find>Object</find>
-    </findStrings>
-    <replaceStrings>
-      <replace>T</replace>
-    </replaceStrings>
-  </component>
-  <component name="GradleLocalSettings">
-    <option name="externalProjectsViewState">
-      <projects_view />
-    </option>
-  </component>
-  <component name="IdeDocumentHistory">
-    <option name="CHANGED_PATHS">
-      <list>
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/List.java" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IIterator.java" />
-        <option value="$PROJECT_DIR$/src/Main.java" />
-        <option value="$PROJECT_DIR$/.gitignore" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IQueue.java" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/Stack.java" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/StackImpl.java" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/BinaryTreeNode.java" />
-        <option value="$PROJECT_DIR$/src/main/xiaoqin/Main.java" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/Main.java" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java" />
-        <option value="$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/ArrayListImplTest.java" />
-        <option value="$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/LinkedListImplTest.java" />
-        <option value="$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java" />
-        <option value="$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/IQueueImplTest.java" />
-        <option value="$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/IStackImplTest.java" />
-      </list>
-    </option>
-  </component>
-  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
-  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
-  <component name="JsGulpfileManager">
-    <detection-done>true</detection-done>
-    <sorting>DEFINITION_ORDER</sorting>
-  </component>
-  <component name="ProjectFrameBounds">
-    <option name="width" value="1920" />
-    <option name="height" value="1054" />
-  </component>
-  <component name="ProjectView">
-    <navigator currentView="ProjectPane" proportions="" version="1">
-      <flattenPackages />
-      <showMembers />
-      <showModules />
-      <showLibraryContents />
-      <hideEmptyPackages />
-      <abbreviatePackageNames />
-      <autoscrollToSource />
-      <autoscrollFromSource />
-      <sortByType />
-      <manualOrder />
-      <foldersAlwaysOnTop value="true" />
-    </navigator>
-    <panes>
-      <pane id="Scratches" />
-      <pane id="Scope" />
-      <pane id="PackagesPane" />
-      <pane id="ProjectPane">
-        <subPane>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="job_2017_02_19_data_structure" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="job_2017_02_19_data_structure" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="job_2017_02_19_data_structure" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="job_2017_02_19_data_structure" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="src" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="impl" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="job_2017_02_19_data_structure" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="job_2017_02_19_data_structure" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="src" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="xiaoqin" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="job_2017_02_19_data_structure" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="job_2017_02_19_data_structure" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="src" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="xiaoqin" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="interfaces" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="job_2017_02_19_data_structure" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="job_2017_02_19_data_structure" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="src" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="xiaoqin" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="impl" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-        </subPane>
-      </pane>
-    </panes>
-  </component>
-  <component name="PropertiesComponent">
-    <property name="WebServerToolWindowFactoryState" value="false" />
-    <property name="aspect.path.notification.shown" value="true" />
-    <property name="nodejs_interpreter_path" value="$USER_HOME$/.nvm/versions/node/v7.3.0/bin/node" />
-    <property name="js.eslint.eslintPackage" value="" />
-    <property name="js-jscs-nodeInterpreter" value="$USER_HOME$/.nvm/versions/node/v7.3.0/bin/node" />
-    <property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
-    <property name="extract.method.default.visibility" value="private" />
-  </component>
-  <component name="RecentsManager">
-    <key name="CopyClassDialog.RECENTS_KEY">
-      <recent name="test.com.java.xiaoqin.impl" />
-    </key>
-  </component>
-  <component name="RunManager" selected="JUnit.IStackImplTest.pushT">
-    <configuration default="false" name="IStackImplTest.pushT" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
-        <pattern>
-          <option name="PATTERN" value="test.com.java.xiaoqin.impl.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <module name="job_2017_02_19_data_structure" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="PACKAGE_NAME" value="test.com.java.xiaoqin.impl" />
-      <option name="MAIN_CLASS_NAME" value="test.com.java.xiaoqin.impl.IStackImplTest" />
-      <option name="METHOD_NAME" value="pushT" />
-      <option name="TEST_OBJECT" value="method" />
-      <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <envs />
-      <patterns />
-      <method />
-    </configuration>
-    <configuration default="false" name="IStackImplTest.pop" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
-        <pattern>
-          <option name="PATTERN" value="test.com.java.xiaoqin.impl.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <module name="job_2017_02_19_data_structure" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="PACKAGE_NAME" value="test.com.java.xiaoqin.impl" />
-      <option name="MAIN_CLASS_NAME" value="test.com.java.xiaoqin.impl.IStackImplTest" />
-      <option name="METHOD_NAME" value="pop" />
-      <option name="TEST_OBJECT" value="method" />
-      <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <envs />
-      <patterns />
-      <method />
-    </configuration>
-    <configuration default="false" name="IStackImplTest.peek" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
-        <pattern>
-          <option name="PATTERN" value="test.com.java.xiaoqin.impl.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <module name="job_2017_02_19_data_structure" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="PACKAGE_NAME" value="test.com.java.xiaoqin.impl" />
-      <option name="MAIN_CLASS_NAME" value="test.com.java.xiaoqin.impl.IStackImplTest" />
-      <option name="METHOD_NAME" value="peek" />
-      <option name="TEST_OBJECT" value="method" />
-      <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <envs />
-      <patterns />
-      <method />
-    </configuration>
-    <configuration default="false" name="IStackImplTest.isEmpty" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
-        <pattern>
-          <option name="PATTERN" value="test.com.java.xiaoqin.impl.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <module name="job_2017_02_19_data_structure" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="PACKAGE_NAME" value="test.com.java.xiaoqin.impl" />
-      <option name="MAIN_CLASS_NAME" value="test.com.java.xiaoqin.impl.IStackImplTest" />
-      <option name="METHOD_NAME" value="isEmpty" />
-      <option name="TEST_OBJECT" value="method" />
-      <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <envs />
-      <patterns />
-      <method />
-    </configuration>
-    <configuration default="false" name="IStackImplTest.size" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
-        <pattern>
-          <option name="PATTERN" value="test.com.java.xiaoqin.impl.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <module name="job_2017_02_19_data_structure" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="PACKAGE_NAME" value="test.com.java.xiaoqin.impl" />
-      <option name="MAIN_CLASS_NAME" value="test.com.java.xiaoqin.impl.IStackImplTest" />
-      <option name="METHOD_NAME" value="size" />
-      <option name="TEST_OBJECT" value="method" />
-      <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <envs />
-      <patterns />
-      <method />
-    </configuration>
-    <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android App">
-      <module name="" />
-      <option name="DEPLOY" value="true" />
-      <option name="ARTIFACT_NAME" value="" />
-      <option name="PM_INSTALL_OPTIONS" value="" />
-      <option name="ACTIVITY_EXTRA_FLAGS" value="" />
-      <option name="MODE" value="default_activity" />
-      <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
-      <option name="PREFERRED_AVD" value="" />
-      <option name="CLEAR_LOGCAT" value="false" />
-      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
-      <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
-      <option name="FORCE_STOP_RUNNING_APP" value="true" />
-      <option name="DEBUGGER_TYPE" value="Java" />
-      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
-      <option name="PREFERRED_AVD" value="" />
-      <Java />
-      <Profilers>
-        <option name="ENABLE_ADVANCED_PROFILING" value="true" />
-        <option name="GAPID_ENABLED" value="false" />
-        <option name="GAPID_DISABLE_PCS" value="false" />
-        <option name="SUPPORT_LIB_ENABLED" value="true" />
-        <option name="INSTRUMENTATION_ENABLED" value="true" />
-      </Profilers>
-      <option name="DEEP_LINK" value="" />
-      <option name="ACTIVITY_CLASS" value="" />
-      <method />
-    </configuration>
-    <configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
-      <module name="" />
-      <option name="TESTING_TYPE" value="0" />
-      <option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
-      <option name="METHOD_NAME" value="" />
-      <option name="CLASS_NAME" value="" />
-      <option name="PACKAGE_NAME" value="" />
-      <option name="EXTRA_OPTIONS" value="" />
-      <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
-      <option name="PREFERRED_AVD" value="" />
-      <option name="CLEAR_LOGCAT" value="false" />
-      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
-      <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
-      <option name="FORCE_STOP_RUNNING_APP" value="true" />
-      <option name="DEBUGGER_TYPE" value="Java" />
-      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
-      <option name="PREFERRED_AVD" value="" />
-      <Java />
-      <Profilers>
-        <option name="ENABLE_ADVANCED_PROFILING" value="true" />
-        <option name="GAPID_ENABLED" value="false" />
-        <option name="GAPID_DISABLE_PCS" value="false" />
-        <option name="SUPPORT_LIB_ENABLED" value="true" />
-        <option name="INSTRUMENTATION_ENABLED" value="true" />
-      </Profilers>
-      <method />
-    </configuration>
-    <configuration default="true" type="Application" factoryName="Application">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="VM_PARAMETERS" />
-      <option name="PROGRAM_PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="ENABLE_SWING_INSPECTOR" value="false" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <module name="" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="ArquillianJUnit" factoryName="" nameIsGenerated="true">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <module name="" />
-      <option name="arquillianRunConfiguration">
-        <value>
-          <option name="containerStateName" value="" />
-        </value>
-      </option>
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="PACKAGE_NAME" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="METHOD_NAME" />
-      <option name="TEST_OBJECT" value="class" />
-      <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <envs />
-      <patterns />
-      <method />
-    </configuration>
-    <configuration default="true" type="ArquillianTestNG" factoryName="">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <module name="" />
-      <option name="arquillianRunConfiguration">
-        <value>
-          <option name="containerStateName" value="" />
-        </value>
-      </option>
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="SUITE_NAME" />
-      <option name="PACKAGE_NAME" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="METHOD_NAME" />
-      <option name="GROUP_NAME" />
-      <option name="TEST_OBJECT" value="CLASS" />
-      <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="OUTPUT_DIRECTORY" />
-      <option name="ANNOTATION_TYPE" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <option name="USE_DEFAULT_REPORTERS" value="false" />
-      <option name="PROPERTIES_FILE" />
-      <envs />
-      <properties />
-      <listeners />
-      <method />
-    </configuration>
-    <configuration default="true" type="Cold Fusion runner description" factoryName="Cold Fusion" custom_browser="" web_path="">
-      <method />
-    </configuration>
-    <configuration default="true" type="CucumberJavaRunConfigurationType" factoryName="Cucumber java">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <option name="myFilePath" />
-      <option name="GLUE" />
-      <option name="myNameFilter" />
-      <option name="myGeneratedName" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="VM_PARAMETERS" />
-      <option name="PROGRAM_PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="ENABLE_SWING_INSPECTOR" value="false" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <module name="" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="FlashRunConfigurationType" factoryName="Flash App">
-      <option name="BCName" value="" />
-      <option name="IOSSimulatorSdkPath" value="" />
-      <option name="adlOptions" value="" />
-      <option name="airProgramParameters" value="" />
-      <option name="appDescriptorForEmulator" value="Android" />
-      <option name="debugTransport" value="USB" />
-      <option name="debuggerSdkRaw" value="BC SDK" />
-      <option name="emulator" value="NexusOne" />
-      <option name="emulatorAdlOptions" value="" />
-      <option name="fastPackaging" value="true" />
-      <option name="fullScreenHeight" value="0" />
-      <option name="fullScreenWidth" value="0" />
-      <option name="launchUrl" value="false" />
-      <option name="launcherParameters">
-        <LauncherParameters>
-          <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
-          <option name="launcherType" value="OSDefault" />
-          <option name="newPlayerInstance" value="false" />
-          <option name="playerPath" value="/usr/bin/flashplayerdebugger" />
-        </LauncherParameters>
-      </option>
-      <option name="mobileRunTarget" value="Emulator" />
-      <option name="moduleName" value="" />
-      <option name="overriddenMainClass" value="" />
-      <option name="overriddenOutputFileName" value="" />
-      <option name="overrideMainClass" value="false" />
-      <option name="runTrusted" value="true" />
-      <option name="screenDpi" value="0" />
-      <option name="screenHeight" value="0" />
-      <option name="screenWidth" value="0" />
-      <option name="url" value="http://" />
-      <option name="usbDebugPort" value="7936" />
-      <method />
-    </configuration>
-    <configuration default="true" type="FlexUnitRunConfigurationType" factoryName="FlexUnit" appDescriptorForEmulator="Android" class_name="" emulatorAdlOptions="" method_name="" package_name="" scope="Class">
-      <option name="BCName" value="" />
-      <option name="launcherParameters">
-        <LauncherParameters>
-          <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
-          <option name="launcherType" value="OSDefault" />
-          <option name="newPlayerInstance" value="false" />
-          <option name="playerPath" value="/usr/bin/flashplayerdebugger" />
-        </LauncherParameters>
-      </option>
-      <option name="moduleName" value="" />
-      <option name="trusted" value="true" />
-      <method />
-    </configuration>
-    <configuration default="true" type="GradleRunConfiguration" factoryName="Gradle">
-      <ExternalSystemSettings>
-        <option name="executionName" />
-        <option name="externalProjectPath" />
-        <option name="externalSystemIdString" value="GRADLE" />
-        <option name="scriptParameters" />
-        <option name="taskDescriptions">
-          <list />
-        </option>
-        <option name="taskNames">
-          <list />
-        </option>
-        <option name="vmOptions" />
-      </ExternalSystemSettings>
-      <method />
-    </configuration>
-    <configuration default="true" type="GrailsRunConfigurationType" factoryName="Grails">
-      <setting name="vmparams" value="" />
-      <setting name="cmdLine" value="run-app" />
-      <setting name="passParentEnv" value="true" />
-      <setting name="launchBrowser" value="true" />
-      <setting name="launchBrowserUrl" value="" />
-      <setting name="depsClasspath" value="false" />
-      <method />
-    </configuration>
-    <configuration default="true" type="JUnit" factoryName="JUnit">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <module name="" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="PACKAGE_NAME" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="METHOD_NAME" />
-      <option name="TEST_OBJECT" value="class" />
-      <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <envs />
-      <patterns />
-      <method />
-    </configuration>
-    <configuration default="true" type="JarApplication" factoryName="JAR Application">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="Java Scratch" factoryName="Java Scratch">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <option name="SCRATCH_FILE_ID" value="0" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="VM_PARAMETERS" />
-      <option name="PROGRAM_PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="ENABLE_SWING_INSPECTOR" value="false" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <module name="" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor">
-      <config-file value="" />
-      <node-interpreter value="project" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
-      <method />
-    </configuration>
-    <configuration default="true" type="JetRunConfigurationType" factoryName="Kotlin">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="VM_PARAMETERS" />
-      <option name="PROGRAM_PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <module name="job_2017_02_19_data_structure" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="KotlinStandaloneScriptRunConfigurationType" factoryName="Kotlin script">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <option name="filePath" />
-      <option name="vmParameters" />
-      <option name="alternativeJrePath" />
-      <option name="programParameters" />
-      <option name="passParentEnvs" value="true" />
-      <option name="workingDirectory" />
-      <option name="isAlternativeJrePathEnabled" value="false" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <module name="" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="TestNG" factoryName="TestNG">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <module name="" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="SUITE_NAME" />
-      <option name="PACKAGE_NAME" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="METHOD_NAME" />
-      <option name="GROUP_NAME" />
-      <option name="TEST_OBJECT" value="CLASS" />
-      <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="OUTPUT_DIRECTORY" />
-      <option name="ANNOTATION_TYPE" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <option name="USE_DEFAULT_REPORTERS" value="false" />
-      <option name="PROPERTIES_FILE" />
-      <envs />
-      <properties />
-      <listeners />
-      <method />
-    </configuration>
-    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
-      <node-interpreter>project</node-interpreter>
-      <node-options />
-      <gulpfile />
-      <tasks />
-      <arguments />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="js.build_tools.npm" factoryName="npm">
-      <command value="run" />
-      <scripts />
-      <node-interpreter value="project" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="osgi.bnd.run" factoryName="Run Launcher">
-      <method />
-    </configuration>
-    <configuration default="true" type="osgi.bnd.run" factoryName="Test Launcher (JUnit)">
-      <method />
-    </configuration>
-    <list size="5">
-      <item index="0" class="java.lang.String" itemvalue="JUnit.IStackImplTest.pushT" />
-      <item index="1" class="java.lang.String" itemvalue="JUnit.IStackImplTest.pop" />
-      <item index="2" class="java.lang.String" itemvalue="JUnit.IStackImplTest.peek" />
-      <item index="3" class="java.lang.String" itemvalue="JUnit.IStackImplTest.isEmpty" />
-      <item index="4" class="java.lang.String" itemvalue="JUnit.IStackImplTest.size" />
-    </list>
-    <recent_temporary>
-      <list size="5">
-        <item index="0" class="java.lang.String" itemvalue="JUnit.IStackImplTest.pushT" />
-        <item index="1" class="java.lang.String" itemvalue="JUnit.IStackImplTest.pop" />
-        <item index="2" class="java.lang.String" itemvalue="JUnit.IStackImplTest.peek" />
-        <item index="3" class="java.lang.String" itemvalue="JUnit.IStackImplTest.isEmpty" />
-        <item index="4" class="java.lang.String" itemvalue="JUnit.IStackImplTest.size" />
-      </list>
-    </recent_temporary>
-  </component>
-  <component name="ShelveChangesManager" show_recycled="false">
-    <option name="remove_strategy" value="false" />
-  </component>
-  <component name="TaskManager">
-    <task active="true" id="Default" summary="Default task">
-      <changelist id="b05ed514-db23-4321-aeff-6ae25dcb5bd7" name="Default" comment="" />
-      <created>1488008946620</created>
-      <option name="number" value="Default" />
-      <option name="presentableId" value="Default" />
-      <updated>1488008946620</updated>
-      <workItem from="1488008949618" duration="15019000" />
-      <workItem from="1488080914888" duration="4730000" />
-      <workItem from="1488110875466" duration="4842000" />
-      <workItem from="1488121601736" duration="2870000" />
-    </task>
-    <servers />
-  </component>
-  <component name="TestHistory">
-    <history-entry file="IQueueImplTest_size - 2017.02.26 at 23h 48m 20s.xml">
-      <configuration name="IQueueImplTest.size" configurationId="JUnit" />
-    </history-entry>
-    <history-entry file="IStackImplTest_isEmpty - 2017.02.26 at 23h 52m 38s.xml">
-      <configuration name="IStackImplTest.isEmpty" configurationId="JUnit" />
-    </history-entry>
-    <history-entry file="IStackImplTest_isEmpty - 2017.02.26 at 23h 52m 47s.xml">
-      <configuration name="IStackImplTest.isEmpty" configurationId="JUnit" />
-    </history-entry>
-    <history-entry file="IStackImplTest_peek - 2017.02.26 at 23h 52m 29s.xml">
-      <configuration name="IStackImplTest.peek" configurationId="JUnit" />
-    </history-entry>
-    <history-entry file="IStackImplTest_peek - 2017.02.26 at 23h 52m 34s.xml">
-      <configuration name="IStackImplTest.peek" configurationId="JUnit" />
-    </history-entry>
-    <history-entry file="IStackImplTest_peek - 2017.02.26 at 23h 52m 50s.xml">
-      <configuration name="IStackImplTest.peek" configurationId="JUnit" />
-    </history-entry>
-    <history-entry file="IStackImplTest_pop - 2017.02.26 at 23h 52m 21s.xml">
-      <configuration name="IStackImplTest.pop" configurationId="JUnit" />
-    </history-entry>
-    <history-entry file="IStackImplTest_pop - 2017.02.26 at 23h 52m 53s.xml">
-      <configuration name="IStackImplTest.pop" configurationId="JUnit" />
-    </history-entry>
-    <history-entry file="IStackImplTest_pushT - 2017.02.26 at 23h 52m 56s.xml">
-      <configuration name="IStackImplTest.pushT" configurationId="JUnit" />
-    </history-entry>
-    <history-entry file="IStackImplTest_size - 2017.02.26 at 23h 52m 42s.xml">
-      <configuration name="IStackImplTest.size" configurationId="JUnit" />
-    </history-entry>
-  </component>
-  <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="27461000" />
-  </component>
-  <component name="ToolWindowManager">
-    <frame x="0" y="0" width="1920" height="1054" extended-state="0" />
-    <editor active="false" />
-    <layout>
-      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
-      <window_info id="Nl-Palette" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
-      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32984293" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24973877" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
-      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
-      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
-      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
-      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-    </layout>
-  </component>
-  <component name="TypeScriptGeneratedFilesManager">
-    <option name="processedProjectFiles" value="true" />
-  </component>
-  <component name="VcsContentAnnotationSettings">
-    <option name="myLimit" value="2678400000" />
-  </component>
-  <component name="XDebuggerManager">
-    <breakpoint-manager>
-      <breakpoints>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java</url>
-          <line>37</line>
-          <properties />
-          <option name="timeStamp" value="8" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java</url>
-          <line>54</line>
-          <properties />
-          <option name="timeStamp" value="9" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java</url>
-          <line>85</line>
-          <properties />
-          <option name="timeStamp" value="10" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java</url>
-          <line>154</line>
-          <properties />
-          <option name="timeStamp" value="13" />
-        </line-breakpoint>
-      </breakpoints>
-      <option name="time" value="14" />
-    </breakpoint-manager>
-    <watches-manager>
-      <configuration name="Application">
-        <watch expression="data.length - index - 1" />
-        <watch expression="size &gt;&gt; 1" />
-        <watch expression="size &gt;&gt; 1" />
-        <watch expression=" size + size &gt;&gt; 1" />
-        <watch expression="data.length - index - 1" />
-        <watch expression="size - index - 1" />
-        <watch expression="size()" />
-        <watch expression=" size()" />
-        <watch expression="size()" />
-      </configuration>
-    </watches-manager>
-  </component>
-  <component name="antWorkspaceConfiguration">
-    <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
-    <option name="FILTER_TARGETS" value="false" />
-  </component>
-  <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="984">
-          <caret line="41" column="15" lean-forward="false" selection-start-line="41" selection-start-column="15" selection-end-line="41" selection-end-column="15" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/Main.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/BinaryTreeNode.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1608">
-          <caret line="79" column="36" lean-forward="false" selection-start-line="79" selection-start-column="36" selection-end-line="79" selection-end-column="36" />
-          <folding>
-            <element signature="e#228#229#0" expanded="true" />
-            <element signature="e#255#256#0" expanded="true" />
-            <element signature="e#290#291#0" expanded="true" />
-            <element signature="e#322#323#0" expanded="true" />
-            <element signature="e#366#367#0" expanded="true" />
-            <element signature="e#398#399#0" expanded="true" />
-            <element signature="e#456#457#0" expanded="true" />
-            <element signature="e#498#499#0" expanded="true" />
-            <element signature="e#543#544#0" expanded="true" />
-            <element signature="e#576#577#0" expanded="true" />
-            <element signature="e#636#637#0" expanded="true" />
-            <element signature="e#680#681#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/StackImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="912">
-          <caret line="38" column="5" lean-forward="false" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
-          <folding>
-            <element signature="e#229#230#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="744">
-          <caret line="34" column="0" lean-forward="false" selection-start-line="34" selection-start-column="0" selection-end-line="34" selection-end-column="0" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2760">
-          <caret line="117" column="13" lean-forward="false" selection-start-line="117" selection-start-column="13" selection-end-line="117" selection-end-column="13" />
-          <folding>
-            <element signature="e#2794#2795#0" expanded="true" />
-            <element signature="e#2816#2817#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/Main.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/Queue.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="4560">
-          <caret line="190" column="12" lean-forward="false" selection-start-line="190" selection-start-column="6" selection-end-line="190" selection-end-column="12" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2328">
-          <caret line="97" column="35" lean-forward="false" selection-start-line="97" selection-start-column="35" selection-end-line="97" selection-end-column="35" />
-          <folding>
-            <element signature="e#2794#2795#0" expanded="true" />
-            <element signature="e#2816#2817#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/.gitignore">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="960">
-          <caret line="43" column="9" lean-forward="true" selection-start-line="43" selection-start-column="9" selection-end-line="43" selection-end-column="9" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces.java" />
-    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/AbstractList.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-12709">
-          <caret line="70" column="22" lean-forward="false" selection-start-line="70" selection-start-column="22" selection-end-line="70" selection-end-column="22" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/lang/ArrayIndexOutOfBoundsException.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="545">
-          <caret line="53" column="11" lean-forward="false" selection-start-line="53" selection-start-column="11" selection-end-line="53" selection-end-column="11" />
-          <folding>
-            <element signature="e#1035#1036#0" expanded="false" />
-            <element signature="e#1094#1095#0" expanded="false" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/Iterator.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-711">
-          <caret line="53" column="17" lean-forward="false" selection-start-line="53" selection-start-column="17" selection-end-line="53" selection-end-column="17" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/List.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="195">
-          <caret line="151" column="27" lean-forward="true" selection-start-line="151" selection-start-column="4" selection-end-line="151" selection-end-column="27" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/ArrayList.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="235">
-          <caret line="251" column="17" lean-forward="false" selection-start-line="251" selection-start-column="17" selection-end-line="251" selection-end-column="17" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/Main.java" />
-    <entry file="file://$PROJECT_DIR$/.gitignore">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="4" lean-forward="true" selection-start-line="0" selection-start-column="4" selection-end-line="0" selection-end-column="4" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IIterator.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="336">
-          <caret line="14" column="15" lean-forward="false" selection-start-line="14" selection-start-column="15" selection-end-line="14" selection-end-column="15" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/LinkedList.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="195">
-          <caret line="269" column="0" lean-forward="false" selection-start-line="269" selection-start-column="0" selection-end-line="269" selection-end-column="0" />
-          <folding>
-            <element signature="e#20484#20485#0" expanded="false" />
-            <element signature="e#20520#20521#0" expanded="false" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/Queue.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="3768">
-          <caret line="190" column="12" lean-forward="false" selection-start-line="190" selection-start-column="6" selection-end-line="190" selection-end-column="12" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/Vector.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="204">
-          <caret line="617" column="29" lean-forward="false" selection-start-line="617" selection-start-column="29" selection-end-line="617" selection-end-column="29" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/Stack.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="132">
-          <caret line="66" column="13" lean-forward="false" selection-start-line="66" selection-start-column="13" selection-end-line="66" selection-end-column="13" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/Main.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="420">
-          <caret line="22" column="23" lean-forward="false" selection-start-line="22" selection-start-column="23" selection-end-line="22" selection-end-column="23" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/com/java/xiaoqin/MainTest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="384">
-          <caret line="20" column="2" lean-forward="true" selection-start-line="20" selection-start-column="2" selection-end-line="20" selection-end-column="2" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/main/com/java/xiaoqin/impl/ArrayListImplTest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="288">
-          <caret line="14" column="0" lean-forward="true" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$USER_HOME$/Software/jdk1.8.0_112/src.zip!/java/util/Optional.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="204">
-          <caret line="119" column="34" lean-forward="false" selection-start-line="119" selection-start-column="34" selection-end-line="119" selection-end-column="34" />
-          <folding>
-            <element signature="e#3486#3487#0" expanded="false" />
-            <element signature="e#3544#3545#0" expanded="false" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/BinaryTreeNode.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="499">
-          <caret line="79" column="36" lean-forward="false" selection-start-line="79" selection-start-column="36" selection-end-line="79" selection-end-column="36" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$APPLICATION_HOME_DIR$/lib/junit-4.12.jar!/org/junit/internal/runners/model/ReflectiveCallable.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="192">
-          <caret line="9" column="62" lean-forward="false" selection-start-line="9" selection-start-column="62" selection-end-line="9" selection-end-column="62" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IList.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="182">
-          <caret line="41" column="15" lean-forward="false" selection-start-line="41" selection-start-column="15" selection-end-line="41" selection-end-column="15" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/interfaces/IQueue.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="312">
-          <caret line="13" column="15" lean-forward="true" selection-start-line="13" selection-start-column="3" selection-end-line="13" selection-end-column="15" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/LinkedListImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="444">
-          <caret line="115" column="13" lean-forward="true" selection-start-line="115" selection-start-column="13" selection-end-line="115" selection-end-column="13" />
-          <folding>
-            <element signature="e#2794#2795#0" expanded="true" />
-            <element signature="e#2816#2817#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/ArrayListImplTest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1142">
-          <caret line="105" column="5" lean-forward="true" selection-start-line="46" selection-start-column="3" selection-end-line="105" selection-end-column="5" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/LinkedListImplTest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="267">
-          <caret line="34" column="9" lean-forward="true" selection-start-line="32" selection-start-column="8" selection-end-line="34" selection-end-column="9" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/IQueueImplTest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="144">
-          <caret line="18" column="34" lean-forward="false" selection-start-line="18" selection-start-column="34" selection-end-line="18" selection-end-column="34" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/StackImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-48">
-          <caret line="13" column="0" lean-forward="false" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
-          <folding>
-            <element signature="e#229#230#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/com/java/xiaoqin/impl/IStackImplTest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="273">
-          <caret line="35" column="27" lean-forward="true" selection-start-line="35" selection-start-column="27" selection-end-line="35" selection-end-column="27" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/java/xiaoqin/impl/ArrayListImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="60">
-          <caret line="96" column="36" lean-forward="false" selection-start-line="96" selection-start-column="36" selection-end-line="96" selection-end-column="36" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-  </component>
-</project>
\ No newline at end of file

From 7a12885aa8cc23c38edd4214e3bf81b1b6076283 Mon Sep 17 00:00:00 2001
From: xiaoqin0000 <xiaoqin0000@gmail.com>
Date: Mon, 27 Feb 2017 00:05:34 +0800
Subject: [PATCH 24/31] remove main

---
 .../src/com/java/xiaoqin/Main.java            | 36 -------------------
 1 file changed, 36 deletions(-)
 delete mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/Main.java

diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/Main.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/Main.java
deleted file mode 100644
index 95266b0956..0000000000
--- a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/com/java/xiaoqin/Main.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.java.xiaoqin;
-
-import com.java.xiaoqin.impl.BinaryTreeNode;
-
-import java.util.Stack;
-
-/**
- * Created by xiaoqin on 17-2-26.
- */
-public class Main {
-    public static void main(String[] args) {
-//        test();
-        testMe();
-    }
-
-    private static void testMe() {
-        BinaryTreeNode<Integer> node = new BinaryTreeNode<>();
-        node.insert(5);
-        node.insert(2);
-        node.insert(7);
-        node.insert(1);
-        node.insert(6);
-        node.insert(4);
-        node.insert(8);
-        System.out.println(node.toString());
-    }
-
-    private static void test() {
-        Stack<Integer> stack = new Stack<>();
-        for (int i = 0; i < 0; i++) {
-            stack.push(i);
-        }
-        System.out.println(stack.peek());
-        System.out.println(stack.peek());
-    }
-}

From 31b86e6e829f10432ad665653098f2d57fb6c36c Mon Sep 17 00:00:00 2001
From: xiaoqin0000 <xiaoqin0000@gmail.com>
Date: Mon, 27 Feb 2017 00:08:54 +0800
Subject: [PATCH 25/31] add binaryTreeNode TestCast

---
 .../java/xiaoqin/impl/BinaryTreeNodeTest.java | 46 +++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/BinaryTreeNodeTest.java

diff --git a/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/BinaryTreeNodeTest.java b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/BinaryTreeNodeTest.java
new file mode 100644
index 0000000000..fa28cdf0d9
--- /dev/null
+++ b/group05/591010847/job_2017_02/job_2017_02_19_data_structure/src/test/com/java/xiaoqin/impl/BinaryTreeNodeTest.java
@@ -0,0 +1,46 @@
+package test.com.java.xiaoqin.impl;
+
+import com.java.xiaoqin.impl.BinaryTreeNode;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * BinaryTreeNode Tester.
+ *
+ * @author <Authors name>
+ * @version 1.0
+ * @since <pre>二月 27, 2017</pre>
+ */
+public class BinaryTreeNodeTest {
+
+    private BinaryTreeNode<Integer> binaryTreeNode;
+
+
+    @Before
+    public void before() throws Exception {
+        binaryTreeNode = new BinaryTreeNode<>();
+    }
+
+    @After
+    public void after() throws Exception {
+        binaryTreeNode = null;
+    }
+
+    /**
+     * Method: insert(T o)
+     */
+    @Test
+    public void testInsert() throws Exception {
+        binaryTreeNode.insert(5);
+        binaryTreeNode.insert(2);
+        binaryTreeNode.insert(7);
+        binaryTreeNode.insert(1);
+        binaryTreeNode.insert(6);
+        System.out.println(binaryTreeNode.toString());
+        binaryTreeNode.insert(4);
+        binaryTreeNode.insert(8);
+        System.out.println(binaryTreeNode.toString());
+    }
+
+}

From 929efcb1bddbb1a44b709c58caac751bb5a0724a Mon Sep 17 00:00:00 2001
From: "songbao.yang" <songbao.yang@qunar.com>
Date: Mon, 27 Feb 2017 00:47:08 +0800
Subject: [PATCH 26/31] BinaryTreeNode

---
 .idea/coding2017.iml                          |   12 +
 .idea/compiler.xml                            |   32 +
 .idea/copyright/profiles_settings.xml         |    3 +
 .idea/encodings.xml                           |    6 +
 .idea/libraries/Maven__junit_junit_4_12.xml   |   13 +
 .../Maven__org_hamcrest_hamcrest_core_1_3.xml |   13 +
 .idea/misc.xml                                |   88 ++
 .idea/modules.xml                             |    9 +
 .idea/vcs.xml                                 |    6 +
 .idea/workspace.xml                           | 1021 +++++++++++++++++
 group05/578505552/578505552.iml               |    2 +-
 .../main/java/com/coding/basic/ArrayList.java |    1 -
 .../java/com/coding/basic/BinaryTreeNode.java |   33 +-
 .../java/com/coding/basic/LinkedList.java     |   78 +-
 14 files changed, 1298 insertions(+), 19 deletions(-)
 create mode 100644 .idea/coding2017.iml
 create mode 100644 .idea/compiler.xml
 create mode 100644 .idea/copyright/profiles_settings.xml
 create mode 100644 .idea/encodings.xml
 create mode 100644 .idea/libraries/Maven__junit_junit_4_12.xml
 create mode 100644 .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
 create mode 100644 .idea/misc.xml
 create mode 100644 .idea/modules.xml
 create mode 100644 .idea/vcs.xml
 create mode 100644 .idea/workspace.xml

diff --git a/.idea/coding2017.iml b/.idea/coding2017.iml
new file mode 100644
index 0000000000..92999fd331
--- /dev/null
+++ b/.idea/coding2017.iml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/group05/578505552/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/group05/578505552/src/test/java" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000000..710011a27c
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <resourceExtensions />
+    <wildcardResourcePatterns>
+      <entry name="!?*.java" />
+      <entry name="!?*.form" />
+      <entry name="!?*.class" />
+      <entry name="!?*.groovy" />
+      <entry name="!?*.scala" />
+      <entry name="!?*.flex" />
+      <entry name="!?*.kt" />
+      <entry name="!?*.clj" />
+      <entry name="!?*.aj" />
+    </wildcardResourcePatterns>
+    <annotationProcessing>
+      <profile default="true" name="Default" enabled="false">
+        <processorPath useClasspath="true" />
+      </profile>
+      <profile default="false" name="Maven default annotation processors profile" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+        <processorPath useClasspath="true" />
+        <module name="578505552" />
+      </profile>
+    </annotationProcessing>
+    <bytecodeTargetLevel>
+      <module name="578505552" target="1.5" />
+    </bytecodeTargetLevel>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
new file mode 100644
index 0000000000..c7d1c5a837
--- /dev/null
+++ b/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+<component name="CopyrightManager">
+  <settings default="" />
+</component>
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000000..6b31afc95b
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding">
+    <file url="file://$PROJECT_DIR$/group05/578505552" charset="UTF-8" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__junit_junit_4_12.xml b/.idea/libraries/Maven__junit_junit_4_12.xml
new file mode 100644
index 0000000000..d3b71924f0
--- /dev/null
+++ b/.idea/libraries/Maven__junit_junit_4_12.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: junit:junit:4.12">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ 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 0000000000..e5d35d8742
--- /dev/null
+++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.hamcrest:hamcrest-core:1.3">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000..4c4ade3a7c
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ClientPropertiesManager">
+    <properties class="javax.swing.AbstractButton">
+      <property name="hideActionText" class="java.lang.Boolean" />
+    </properties>
+    <properties class="javax.swing.JComponent">
+      <property name="html.disable" class="java.lang.Boolean" />
+    </properties>
+    <properties class="javax.swing.JEditorPane">
+      <property name="JEditorPane.w3cLengthUnits" class="java.lang.Boolean" />
+      <property name="JEditorPane.honorDisplayProperties" class="java.lang.Boolean" />
+      <property name="charset" class="java.lang.String" />
+    </properties>
+    <properties class="javax.swing.JList">
+      <property name="List.isFileList" class="java.lang.Boolean" />
+    </properties>
+    <properties class="javax.swing.JPasswordField">
+      <property name="JPasswordField.cutCopyAllowed" class="java.lang.Boolean" />
+    </properties>
+    <properties class="javax.swing.JSlider">
+      <property name="Slider.paintThumbArrowShape" class="java.lang.Boolean" />
+      <property name="JSlider.isFilled" class="java.lang.Boolean" />
+    </properties>
+    <properties class="javax.swing.JTable">
+      <property name="Table.isFileList" class="java.lang.Boolean" />
+      <property name="JTable.autoStartsEdit" class="java.lang.Boolean" />
+      <property name="terminateEditOnFocusLost" class="java.lang.Boolean" />
+    </properties>
+    <properties class="javax.swing.JToolBar">
+      <property name="JToolBar.isRollover" class="java.lang.Boolean" />
+    </properties>
+    <properties class="javax.swing.JTree">
+      <property name="JTree.lineStyle" class="java.lang.String" />
+    </properties>
+    <properties class="javax.swing.text.JTextComponent">
+      <property name="caretAspectRatio" class="java.lang.Double" />
+      <property name="caretWidth" class="java.lang.Integer" />
+    </properties>
+  </component>
+  <component name="EclipseCodeFormatter">
+    <option name="defaultSettings" value="true" />
+    <option name="formatter" value="ECLIPSE" />
+    <option name="id" value="1473405887727" />
+    <option name="importOrderConfigFilePath" value="$USER_HOME$/Desktop/Qunar.xml" />
+    <option name="importOrderFromFile" value="true" />
+    <option name="name" value="default" />
+    <option name="pathToConfigFileJava" value="$USER_HOME$/Desktop/Qunar.xml" />
+    <option name="selectedJavaProfile" value="Qunar" />
+  </component>
+  <component name="EntryPointsManager">
+    <entry_points version="2.0" />
+  </component>
+  <component name="MavenProjectsManager">
+    <option name="originalFiles">
+      <list>
+        <option value="$PROJECT_DIR$/group05/578505552/pom.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
+    <OptionsSetting value="true" id="Add" />
+    <OptionsSetting value="true" id="Remove" />
+    <OptionsSetting value="true" id="Checkout" />
+    <OptionsSetting value="true" id="Update" />
+    <OptionsSetting value="true" id="Status" />
+    <OptionsSetting value="true" id="Edit" />
+    <ConfirmationsSetting value="0" id="Add" />
+    <ConfirmationsSetting value="0" id="Remove" />
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
+  <component name="masterDetails">
+    <states>
+      <state key="ProjectJDKs.UI">
+        <settings>
+          <last-edited>1.7</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.31093884" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+    </states>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000..739a5428bb
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/group05/578505552/578505552.iml" filepath="$PROJECT_DIR$/group05/578505552/578505552.iml" />
+      <module fileurl="file://$PROJECT_DIR$/.idea/coding2017.iml" filepath="$PROJECT_DIR$/.idea/coding2017.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000..35eb1ddfbb
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000000..702d9b36d0
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,1021 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ChangeListManager">
+    <list default="true" id="400776d6-3bbb-471f-a2c6-924f436f81ac" name="Default" comment="">
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/vcs.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/group05/578505552/578505552.iml" afterPath="$PROJECT_DIR$/group05/578505552/578505552.iml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/ArrayList.java" afterPath="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/ArrayList.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java" afterPath="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/LinkedList.java" afterPath="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/LinkedList.java" />
+    </list>
+    <ignored path="coding2017.iws" />
+    <ignored path=".idea/workspace.xml" />
+    <ignored path=".idea/dataSources.local.xml" />
+    <ignored path="$PROJECT_DIR$/group05/578505552/target/" />
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
+    <option name="TRACKING_ENABLED" value="true" />
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="CreatePatchCommitExecutor">
+    <option name="PATCH_PATH" value="" />
+  </component>
+  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
+  <component name="FavoritesManager">
+    <favorites_list name="coding2017" />
+  </component>
+  <component name="FileEditorManager">
+    <leaf>
+      <file leaf-file-name="LinkedList.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/LinkedList.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="357">
+              <caret line="17" column="25" selection-start-line="17" selection-start-column="25" selection-end-line="17" selection-end-column="25" />
+              <folding>
+                <element signature="e#1738#1739#0" expanded="true" />
+                <element signature="e#1764#1765#0" expanded="true" />
+                <element signature="e#2875#2876#0" expanded="true" />
+                <element signature="e#2898#2899#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="List.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/List.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="126">
+              <caret line="6" column="17" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Queue.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/Queue.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="168">
+              <caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Stack.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/Stack.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="185">
+              <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="QueueTest.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group05/578505552/src/test/java/com/coding/basic/QueueTest.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="357">
+              <caret line="17" column="11" selection-start-line="17" selection-start-column="5" selection-end-line="17" selection-end-column="11" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="StackTest.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group05/578505552/src/test/java/com/coding/basic/StackTest.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="168">
+              <caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="ArrayList.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/ArrayList.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="42">
+              <caret line="83" column="30" selection-start-line="83" selection-start-column="30" selection-end-line="83" selection-end-column="30" />
+              <folding>
+                <element signature="e#2026#2027#0" expanded="true" />
+                <element signature="e#2049#2050#0" expanded="true" />
+                <element signature="e#2180#2181#0" expanded="true" />
+                <element signature="e#2225#2226#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="BinaryTreeNode.java" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="231">
+              <caret line="42" column="46" selection-start-line="42" selection-start-column="46" selection-end-line="42" selection-end-column="46" />
+              <folding>
+                <element signature="e#222#223#0" expanded="true" />
+                <element signature="e#240#241#0" expanded="true" />
+                <element signature="e#277#278#0" expanded="true" />
+                <element signature="e#300#301#0" expanded="true" />
+                <element signature="e#335#336#0" expanded="true" />
+                <element signature="e#353#354#0" expanded="true" />
+                <element signature="e#397#398#0" expanded="true" />
+                <element signature="e#420#421#0" expanded="true" />
+                <element signature="e#456#457#0" expanded="true" />
+                <element signature="e#475#476#0" expanded="true" />
+                <element signature="e#521#522#0" expanded="true" />
+                <element signature="e#546#547#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Integer.java" pinned="false" current-in-tab="false">
+        <entry file="jar://C:/Program Files/Java/jdk1.8.0_92/src.zip!/java/lang/Integer.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="332">
+              <caret line="1214" column="15" selection-start-line="1214" selection-start-column="15" selection-end-line="1214" selection-end-column="15" />
+              <folding>
+                <element signature="e#46394#46395#0" expanded="true" />
+                <element signature="e#46458#46459#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Iterator.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/Iterator.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="126">
+              <caret line="6" column="17" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
+  </component>
+  <component name="Git.Settings">
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+  </component>
+  <component name="GradleLocalSettings">
+    <option name="externalProjectsViewState">
+      <projects_view />
+    </option>
+  </component>
+  <component name="IdeDocumentHistory">
+    <option name="CHANGED_PATHS">
+      <list>
+        <option value="$PROJECT_DIR$/group05/578505552/src/test/java/com/coding/basic/QueueTest.java" />
+        <option value="$PROJECT_DIR$/group05/578505552/pom.xml" />
+        <option value="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/ArrayList.java" />
+        <option value="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/LinkedList.java" />
+        <option value="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java" />
+      </list>
+    </option>
+  </component>
+  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="JsGulpfileManager">
+    <detection-done>true</detection-done>
+    <sorting>DEFINITION_ORDER</sorting>
+  </component>
+  <component name="MavenImportPreferences">
+    <option name="generalSettings">
+      <MavenGeneralSettings>
+        <option name="mavenHome" value="Bundled (Maven 3)" />
+      </MavenGeneralSettings>
+    </option>
+  </component>
+  <component name="MavenProjectNavigator">
+    <treeState />
+  </component>
+  <component name="ProjectFrameBounds">
+    <option name="x" value="-8" />
+    <option name="y" value="-8" />
+    <option name="width" value="1382" />
+    <option name="height" value="744" />
+  </component>
+  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
+    <OptionsSetting value="true" id="Add" />
+    <OptionsSetting value="true" id="Remove" />
+    <OptionsSetting value="true" id="Checkout" />
+    <OptionsSetting value="true" id="Update" />
+    <OptionsSetting value="true" id="Status" />
+    <OptionsSetting value="true" id="Edit" />
+    <ConfirmationsSetting value="0" id="Add" />
+    <ConfirmationsSetting value="0" id="Remove" />
+  </component>
+  <component name="ProjectView">
+    <navigator currentView="ProjectPane" proportions="" version="1">
+      <flattenPackages />
+      <showMembers />
+      <showModules />
+      <showLibraryContents />
+      <hideEmptyPackages />
+      <abbreviatePackageNames />
+      <autoscrollToSource />
+      <autoscrollFromSource />
+      <sortByType />
+      <manualOrder />
+      <foldersAlwaysOnTop value="true" />
+    </navigator>
+    <panes>
+      <pane id="Scope" />
+      <pane id="ProjectPane">
+        <subPane>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding2017" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding2017" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding2017" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding2017" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding2017" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="group05" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding2017" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding2017" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="group05" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="578505552" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding2017" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding2017" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="group05" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="578505552" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="test" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="java" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding2017" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding2017" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="group05" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="578505552" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="test" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="java" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="basic" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding2017" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding2017" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="group05" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="578505552" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="main" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="java" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="basic" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+        </subPane>
+      </pane>
+      <pane id="PackagesPane" />
+      <pane id="Scratches" />
+    </panes>
+  </component>
+  <component name="PropertiesComponent">
+    <property name="aspect.path.notification.shown" value="true" />
+    <property name="WebServerToolWindowFactoryState" value="false" />
+    <property name="js-jscs-nodeInterpreter" value="C:\Program Files\nodejs\node.exe" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/group05/578505552/pom.xml" />
+  </component>
+  <component name="RunManager">
+    <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
+      <module name="" />
+      <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
+      <option name="PROGRAM_PARAMETERS" />
+      <method />
+    </configuration>
+    <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application">
+      <module name="" />
+      <option name="DEPLOY" value="true" />
+      <option name="ARTIFACT_NAME" value="" />
+      <option name="PM_INSTALL_OPTIONS" value="" />
+      <option name="ACTIVITY_EXTRA_FLAGS" value="" />
+      <option name="MODE" value="default_activity" />
+      <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
+      <option name="PREFERRED_AVD" value="" />
+      <option name="CLEAR_LOGCAT" value="false" />
+      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
+      <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
+      <option name="FORCE_STOP_RUNNING_APP" value="true" />
+      <option name="DEBUGGER_TYPE" value="Java" />
+      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
+      <option name="PREFERRED_AVD" value="" />
+      <Java />
+      <Profilers>
+        <option name="GAPID_DISABLE_PCS" value="false" />
+      </Profilers>
+      <option name="DEEP_LINK" value="" />
+      <option name="ACTIVITY_CLASS" value="" />
+      <method />
+    </configuration>
+    <configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
+      <module name="" />
+      <option name="TESTING_TYPE" value="0" />
+      <option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
+      <option name="METHOD_NAME" value="" />
+      <option name="CLASS_NAME" value="" />
+      <option name="PACKAGE_NAME" value="" />
+      <option name="EXTRA_OPTIONS" value="" />
+      <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
+      <option name="PREFERRED_AVD" value="" />
+      <option name="CLEAR_LOGCAT" value="false" />
+      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
+      <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
+      <option name="FORCE_STOP_RUNNING_APP" value="true" />
+      <option name="DEBUGGER_TYPE" value="Java" />
+      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
+      <option name="PREFERRED_AVD" value="" />
+      <Java />
+      <Profilers>
+        <option name="GAPID_DISABLE_PCS" value="false" />
+      </Profilers>
+      <method />
+    </configuration>
+    <configuration default="true" type="Applet" factoryName="Applet">
+      <option name="HTML_USED" value="false" />
+      <option name="WIDTH" value="400" />
+      <option name="HEIGHT" value="300" />
+      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
+      <module />
+      <method />
+    </configuration>
+    <configuration default="true" type="Application" factoryName="Application">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="ArquillianJUnit" factoryName="">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <option name="arquillianRunConfiguration">
+        <value>
+          <option name="containerStateName" value="" />
+        </value>
+      </option>
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="TEST_OBJECT" value="class" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <envs />
+      <patterns />
+      <method />
+    </configuration>
+    <configuration default="true" type="ArquillianTestNG" factoryName="">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <option name="arquillianRunConfiguration">
+        <value>
+          <option name="containerStateName" value="" />
+        </value>
+      </option>
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="SUITE_NAME" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="GROUP_NAME" />
+      <option name="TEST_OBJECT" value="CLASS" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="OUTPUT_DIRECTORY" />
+      <option name="ANNOTATION_TYPE" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <option name="USE_DEFAULT_REPORTERS" value="false" />
+      <option name="PROPERTIES_FILE" />
+      <envs />
+      <properties />
+      <listeners />
+      <method />
+    </configuration>
+    <configuration default="true" type="Cold Fusion runner description" factoryName="Cold Fusion" custom_browser="" web_path="">
+      <method />
+    </configuration>
+    <configuration default="true" type="CucumberJavaRunConfigurationType" factoryName="Cucumber java">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="myFilePath" />
+      <option name="GLUE" />
+      <option name="myNameFilter" />
+      <option name="myGeneratedName" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="FlashRunConfigurationType" factoryName="Flash App">
+      <option name="BCName" value="" />
+      <option name="IOSSimulatorSdkPath" value="" />
+      <option name="adlOptions" value="" />
+      <option name="airProgramParameters" value="" />
+      <option name="appDescriptorForEmulator" value="Android" />
+      <option name="debugTransport" value="USB" />
+      <option name="debuggerSdkRaw" value="BC SDK" />
+      <option name="emulator" value="NexusOne" />
+      <option name="emulatorAdlOptions" value="" />
+      <option name="fastPackaging" value="true" />
+      <option name="fullScreenHeight" value="0" />
+      <option name="fullScreenWidth" value="0" />
+      <option name="launchUrl" value="false" />
+      <option name="launcherParameters">
+        <LauncherParameters>
+          <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
+          <option name="launcherType" value="OSDefault" />
+          <option name="newPlayerInstance" value="false" />
+          <option name="playerPath" value="FlashPlayerDebugger.exe" />
+        </LauncherParameters>
+      </option>
+      <option name="mobileRunTarget" value="Emulator" />
+      <option name="moduleName" value="" />
+      <option name="overriddenMainClass" value="" />
+      <option name="overriddenOutputFileName" value="" />
+      <option name="overrideMainClass" value="false" />
+      <option name="runTrusted" value="true" />
+      <option name="screenDpi" value="0" />
+      <option name="screenHeight" value="0" />
+      <option name="screenWidth" value="0" />
+      <option name="url" value="http://" />
+      <option name="usbDebugPort" value="7936" />
+      <method />
+    </configuration>
+    <configuration default="true" type="FlexUnitRunConfigurationType" factoryName="FlexUnit" appDescriptorForEmulator="Android" class_name="" emulatorAdlOptions="" method_name="" package_name="" scope="Class">
+      <option name="BCName" value="" />
+      <option name="launcherParameters">
+        <LauncherParameters>
+          <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
+          <option name="launcherType" value="OSDefault" />
+          <option name="newPlayerInstance" value="false" />
+          <option name="playerPath" value="FlashPlayerDebugger.exe" />
+        </LauncherParameters>
+      </option>
+      <option name="moduleName" value="" />
+      <option name="trusted" value="true" />
+      <method />
+    </configuration>
+    <configuration default="true" type="GradleRunConfiguration" factoryName="Gradle">
+      <ExternalSystemSettings>
+        <option name="executionName" />
+        <option name="externalProjectPath" />
+        <option name="externalSystemIdString" value="GRADLE" />
+        <option name="scriptParameters" />
+        <option name="taskDescriptions">
+          <list />
+        </option>
+        <option name="taskNames">
+          <list />
+        </option>
+        <option name="vmOptions" />
+      </ExternalSystemSettings>
+      <method />
+    </configuration>
+    <configuration default="true" type="GrailsRunConfigurationType" factoryName="Grails">
+      <setting name="vmparams" value="" />
+      <setting name="cmdLine" value="run-app" />
+      <setting name="passParentEnv" value="true" />
+      <setting name="launchBrowser" value="true" />
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <method />
+    </configuration>
+    <configuration default="true" type="JUnit" factoryName="JUnit">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="TEST_OBJECT" value="class" />
+      <option name="VM_PARAMETERS" value="-ea" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <envs />
+      <patterns />
+      <method />
+    </configuration>
+    <configuration default="true" type="JUnitTestDiscovery" factoryName="JUnit Test Discovery" changeList="All">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="TEST_OBJECT" value="class" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <envs />
+      <patterns />
+      <method />
+    </configuration>
+    <configuration default="true" type="JarApplication" factoryName="JAR Application">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="Java Scratch" factoryName="Java Scratch">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="SCRATCH_FILE_ID" value="0" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
+      <method />
+    </configuration>
+    <configuration default="true" type="JetRunConfigurationType" factoryName="Kotlin">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="coding2017" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="KotlinStandaloneScriptRunConfigurationType" factoryName="Kotlin script">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <option name="filePath" />
+      <option name="vmParameters" />
+      <option name="alternativeJrePath" />
+      <option name="programParameters" />
+      <option name="passParentEnvs" value="true" />
+      <option name="workingDirectory" />
+      <option name="isAlternativeJrePathEnabled" value="false" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="Remote" factoryName="Remote">
+      <option name="USE_SOCKET_TRANSPORT" value="true" />
+      <option name="SERVER_MODE" value="false" />
+      <option name="SHMEM_ADDRESS" value="javadebug" />
+      <option name="HOST" value="localhost" />
+      <option name="PORT" value="5005" />
+      <method />
+    </configuration>
+    <configuration default="true" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="TestNG" factoryName="TestNG">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="SUITE_NAME" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="GROUP_NAME" />
+      <option name="TEST_OBJECT" value="CLASS" />
+      <option name="VM_PARAMETERS" value="-ea" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
+      <option name="OUTPUT_DIRECTORY" />
+      <option name="ANNOTATION_TYPE" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <option name="USE_DEFAULT_REPORTERS" value="false" />
+      <option name="PROPERTIES_FILE" />
+      <envs />
+      <properties />
+      <listeners />
+      <method />
+    </configuration>
+    <configuration default="true" type="TestNGTestDiscovery" factoryName="TestNG Test Discovery" changeList="All">
+      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+      <module name="" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="SUITE_NAME" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="GROUP_NAME" />
+      <option name="TEST_OBJECT" value="CLASS" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" />
+      <option name="OUTPUT_DIRECTORY" />
+      <option name="ANNOTATION_TYPE" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="singleModule" />
+      </option>
+      <option name="USE_DEFAULT_REPORTERS" value="false" />
+      <option name="PROPERTIES_FILE" />
+      <envs />
+      <properties />
+      <listeners />
+      <method />
+    </configuration>
+    <configuration default="true" type="executeSpecs" factoryName="Gauge Execution">
+      <setting name="environment" value="" />
+      <setting name="specsToExecute" value="" />
+      <setting name="tags" value="" />
+      <setting name="parallelNodes" value="" />
+      <setting name="execInParallel" value="false" />
+      <setting name="programParameters" value="" />
+      <setting name="workingDirectory" value="" />
+      <setting name="moduleName" value="" />
+      <envMap />
+      <setting name="rowsRange" value="" />
+      <method />
+    </configuration>
+    <configuration default="true" type="idea.plugin.jmeter.run.JmeterConfigurationType" factoryName="JMeter">
+      <setting name="testFile" value="" />
+      <setting name="propertyFile" value="" />
+      <setting name="jvmParameters" value="" />
+      <setting name="customParameters" value="" />
+      <setting name="workingDirectory" value="" />
+      <properties />
+      <method />
+    </configuration>
+    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
+      <method />
+    </configuration>
+    <configuration default="true" type="js.build_tools.npm" factoryName="npm">
+      <command value="run-script" />
+      <scripts />
+      <node-interpreter value="project" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="true" type="osgi.bnd.run" factoryName="Run Launcher">
+      <method />
+    </configuration>
+    <configuration default="true" type="osgi.bnd.run" factoryName="Test Launcher (JUnit)">
+      <method />
+    </configuration>
+  </component>
+  <component name="ShelveChangesManager" show_recycled="false">
+    <option name="remove_strategy" value="false" />
+  </component>
+  <component name="TaskManager">
+    <task active="true" id="Default" summary="Default task">
+      <changelist id="400776d6-3bbb-471f-a2c6-924f436f81ac" name="Default" comment="" />
+      <created>1488124662643</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1488124662643</updated>
+      <workItem from="1488124668398" duration="2735000" />
+    </task>
+    <servers />
+  </component>
+  <component name="TimeTrackingManager">
+    <option name="totallyTimeSpent" value="2735000" />
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
+    <editor active="true" />
+    <layout>
+      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+      <window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
+      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32980332" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24962178" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
+      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+    </layout>
+  </component>
+  <component name="Vcs.Log.UiProperties">
+    <option name="RECENTLY_FILTERED_USER_GROUPS">
+      <collection />
+    </option>
+    <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
+      <collection />
+    </option>
+  </component>
+  <component name="VcsContentAnnotationSettings">
+    <option name="myLimit" value="2678400000" />
+  </component>
+  <component name="XDebuggerManager">
+    <breakpoint-manager />
+    <watches-manager />
+  </component>
+  <component name="editorHistoryManager">
+    <entry file="file://$PROJECT_DIR$/group05/578505552/.gitignore">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="336">
+          <caret line="16" column="6" selection-start-line="16" selection-start-column="6" selection-end-line="16" selection-end-column="6" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group05/578505552/578505552.iml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group05/578505552/pom.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="385">
+          <caret line="24" column="0" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group05/578505552/src/test/java/com/coding/basic/ArrayListTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="84">
+          <caret line="7" column="3" selection-start-line="7" selection-start-column="3" selection-end-line="7" selection-end-column="3" />
+          <folding>
+            <element signature="imports" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group05/578505552/src/test/java/com/coding/basic/QueueTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="357">
+          <caret line="17" column="11" selection-start-line="17" selection-start-column="5" selection-end-line="17" selection-end-column="11" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group05/578505552/src/test/java/com/coding/basic/StackTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="168">
+          <caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="126">
+          <caret line="6" column="17" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="126">
+          <caret line="6" column="17" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/Queue.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="168">
+          <caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/Stack.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="185">
+          <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="42">
+          <caret line="83" column="30" selection-start-line="83" selection-start-column="30" selection-end-line="83" selection-end-column="30" />
+          <folding>
+            <element signature="e#2026#2027#0" expanded="true" />
+            <element signature="e#2049#2050#0" expanded="true" />
+            <element signature="e#2180#2181#0" expanded="true" />
+            <element signature="e#2225#2226#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/LinkedList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="357">
+          <caret line="17" column="25" selection-start-line="17" selection-start-column="25" selection-end-line="17" selection-end-column="25" />
+          <folding>
+            <element signature="e#1738#1739#0" expanded="true" />
+            <element signature="e#1764#1765#0" expanded="true" />
+            <element signature="e#2875#2876#0" expanded="true" />
+            <element signature="e#2898#2899#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://C:/Program Files/Java/jdk1.8.0_92/src.zip!/java/lang/Integer.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="332">
+          <caret line="1214" column="15" selection-start-line="1214" selection-start-column="15" selection-end-line="1214" selection-end-column="15" />
+          <folding>
+            <element signature="e#46394#46395#0" expanded="true" />
+            <element signature="e#46458#46459#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="231">
+          <caret line="42" column="46" selection-start-line="42" selection-start-column="46" selection-end-line="42" selection-end-column="46" />
+          <folding>
+            <element signature="e#222#223#0" expanded="true" />
+            <element signature="e#240#241#0" expanded="true" />
+            <element signature="e#277#278#0" expanded="true" />
+            <element signature="e#300#301#0" expanded="true" />
+            <element signature="e#335#336#0" expanded="true" />
+            <element signature="e#353#354#0" expanded="true" />
+            <element signature="e#397#398#0" expanded="true" />
+            <element signature="e#420#421#0" expanded="true" />
+            <element signature="e#456#457#0" expanded="true" />
+            <element signature="e#475#476#0" expanded="true" />
+            <element signature="e#521#522#0" expanded="true" />
+            <element signature="e#546#547#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+  </component>
+</project>
\ No newline at end of file
diff --git a/group05/578505552/578505552.iml b/group05/578505552/578505552.iml
index faa2a57144..95e7551d7a 100644
--- a/group05/578505552/578505552.iml
+++ b/group05/578505552/578505552.iml
@@ -8,7 +8,7 @@
       <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
       <excludeFolder url="file://$MODULE_DIR$/target" />
     </content>
-    <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />
+    <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
     <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
diff --git a/group05/578505552/src/main/java/com/coding/basic/ArrayList.java b/group05/578505552/src/main/java/com/coding/basic/ArrayList.java
index 1620048907..54d8f05f02 100644
--- a/group05/578505552/src/main/java/com/coding/basic/ArrayList.java
+++ b/group05/578505552/src/main/java/com/coding/basic/ArrayList.java
@@ -97,7 +97,6 @@ public Object next() {
             if (hasNext()){
                 return elementData[cursor++];
             }
-
             throw new NoSuchElementException();
         }
     }
diff --git a/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java b/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java
index 0169aeb79a..0610a542b5 100644
--- a/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java
+++ b/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java
@@ -6,14 +6,14 @@
  */
 public class BinaryTreeNode {
 	
-	private Object data;
+	private Integer data;
 	private BinaryTreeNode left;
 	private BinaryTreeNode right;
 	
 	public Object getData() {
 		return data;
 	}
-	public void setData(Object data) {
+	public void setData(Integer data) {
 		this.data = data;
 	}
 	public BinaryTreeNode getLeft() {
@@ -29,8 +29,29 @@ public void setRight(BinaryTreeNode right) {
 		this.right = right;
 	}
 	
-	public BinaryTreeNode insert(Object o){
-		return  null;
-	}
-	
+	public BinaryTreeNode insert(Integer o){
+
+        BinaryTreeNode newNode = new BinaryTreeNode();
+        newNode.data = o;
+        newNode.left = null;
+        newNode.right = null;
+
+        BinaryTreeNode cursor = this;
+        BinaryTreeNode pre = cursor;
+        while (cursor != null){
+            pre = cursor;
+            if (o.compareTo(cursor.data) < 0){
+                cursor = cursor.left;
+            } else {
+                cursor = cursor.right;
+            }
+        }
+
+        if (o.compareTo(pre.data) < 0){
+            pre.left = newNode;
+        } else {
+            pre.right = newNode;
+        }
+        return this;
+    }
 }
diff --git a/group05/578505552/src/main/java/com/coding/basic/LinkedList.java b/group05/578505552/src/main/java/com/coding/basic/LinkedList.java
index c3eeb54950..58accde4d8 100644
--- a/group05/578505552/src/main/java/com/coding/basic/LinkedList.java
+++ b/group05/578505552/src/main/java/com/coding/basic/LinkedList.java
@@ -1,5 +1,7 @@
 package com.coding.basic;
 
+import java.util.NoSuchElementException;
+
 /**
  * Created by songbao.yang on 2017/2/21.
  *
@@ -9,7 +11,7 @@ public class LinkedList implements List {
 	private Node head;
 	private int elementCount;
 
-    //head作为一个节点，其next的值指向List中的真正的第一个节点
+    //head作为一个节点，其next的值指向List中真正的第一个节点
 	public LinkedList() {
         Node head = new Node();
         head.next = null;
@@ -69,6 +71,7 @@ public Object remove(int index){
         }
         Node indexNode = cursor.next;
         cursor.next = indexNode.next;
+        elementCount--;
 		return indexNode;
 	}
 	
@@ -77,22 +80,75 @@ public int size(){
 	}
 	
 	public void addFirst(Object o){
-		
-	}
+        Node node = new Node();
+        node.data = o;
+        node.next = head.next;
+        head.next = node;
+        elementCount++;
+    }
+
 	public void addLast(Object o){
-		
-	}
+
+	    Node cursor = head;
+        while (cursor.next != null){
+            cursor = cursor.next;
+        }
+        Node newNode = new Node();
+        newNode.data = o;
+        newNode.next = null;
+        cursor.next = newNode;
+        elementCount++;
+    }
+
 	public Object removeFirst(){
-		return null;
+
+	    if (size() == 0){
+	        throw new RuntimeException("no element in list");
+        }
+        Node firstNode = head.next;
+        head.next = head.next.next;
+        elementCount--;
+        return firstNode;
 	}
+
 	public Object removeLast(){
-		return null;
-	}
+	    if (size() == 0){
+            throw new RuntimeException("no element in list");
+        }
+
+	    Node cursor = head;
+        for (int i = 0; i < size() - 1; i++) {
+            cursor = cursor.next;
+        }
+
+        Node lastNode = cursor.next;
+        cursor.next = null;
+        elementCount--;
+
+        return lastNode;
+    }
+
 	public Iterator iterator(){
-		return null;
+		return new Itr();
 	}
-	
-	
+
+	private class Itr implements Iterator {
+
+	    private Node itrCursor = head;
+
+        public boolean hasNext() {
+
+            return itrCursor.next != null;
+        }
+
+        public Object next() {
+            if (hasNext()){
+                return itrCursor.next;
+            }
+            throw new NoSuchElementException();
+        }
+    }
+
 	private static  class Node{
 		Object data;
 		Node next;

From b839c3445f01dfe50705f34c1b57f16bdef1733f Mon Sep 17 00:00:00 2001
From: PingPi357 <810574652@qq.com>
Date: Mon, 27 Feb 2017 03:09:31 +0800
Subject: [PATCH 27/31] HomeWork_1

---
 group05/810574652/.classpath                  |   6 +
 group05/810574652/.gitignore                  |   1 +
 group05/810574652/.project                    |  17 +++
 .../PingPi357/coding2017/basic/ArrayList.java |  81 +++++++++++
 .../coding2017/basic/LinkedList.java          | 131 ++++++++++++++++++
 .../PingPi357/coding2017/basic/List.java      |  17 +++
 .../PingPi357/coding2017/basic/Queue.java     |  18 +++
 .../PingPi357/coding2017/basic/Stack.java     |  33 +++++
 .../basic/\350\257\264\346\230\216"           |   2 +
 9 files changed, 306 insertions(+)
 create mode 100644 group05/810574652/.classpath
 create mode 100644 group05/810574652/.gitignore
 create mode 100644 group05/810574652/.project
 create mode 100644 group05/810574652/src/com/github/PingPi357/coding2017/basic/ArrayList.java
 create mode 100644 group05/810574652/src/com/github/PingPi357/coding2017/basic/LinkedList.java
 create mode 100644 group05/810574652/src/com/github/PingPi357/coding2017/basic/List.java
 create mode 100644 group05/810574652/src/com/github/PingPi357/coding2017/basic/Queue.java
 create mode 100644 group05/810574652/src/com/github/PingPi357/coding2017/basic/Stack.java
 create mode 100644 "group05/810574652/src/com/github/PingPi357/coding2017/basic/\350\257\264\346\230\216"

diff --git a/group05/810574652/.classpath b/group05/810574652/.classpath
new file mode 100644
index 0000000000..fb5011632c
--- /dev/null
+++ b/group05/810574652/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/group05/810574652/.gitignore b/group05/810574652/.gitignore
new file mode 100644
index 0000000000..ae3c172604
--- /dev/null
+++ b/group05/810574652/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/group05/810574652/.project b/group05/810574652/.project
new file mode 100644
index 0000000000..292266f147
--- /dev/null
+++ b/group05/810574652/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>810574652HomeWork</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/group05/810574652/src/com/github/PingPi357/coding2017/basic/ArrayList.java b/group05/810574652/src/com/github/PingPi357/coding2017/basic/ArrayList.java
new file mode 100644
index 0000000000..2fb0968eb5
--- /dev/null
+++ b/group05/810574652/src/com/github/PingPi357/coding2017/basic/ArrayList.java
@@ -0,0 +1,81 @@
+package com.github.PingPi357.coding2017.basic;
+
+import java.util.Arrays;
+
+public class ArrayList implements List {
+	private static final int DEFAULT_CAPACITY = 100; // 定义静态final类型，
+														// final在一个对象类唯一，
+														// static
+														// final在多个对象中都唯一，如果作为常量用的话，只是final的话就得在别的类引用的时候要创建对象，会占用不必要的空间，而加上static的话在编译的时候占用一个空间，其他时候就不会再占用空间了。所以常量一般用static修饰，其他时候看你自己的需要
+	// 理解：比如我是一个维修工人....public相当于我接任何活,static相当于10分钟之内赶到,final相当于就我一家.
+	// reference: http://bbs.itheima.com/thread-162971-1-1.html
+
+	int size = 0; // 如果是中文分号，报错：Syntax error on token "invalid Character", ;
+					// excepted;
+
+	private Object[] elementData = new Object[DEFAULT_CAPACITY]; // new
+																	// Object后面接的是中括号
+
+	@Override
+	public void add(Object o) {
+		// TODO Auto-generated method stub
+		ensureCapacity(++size); // size自加操作
+		elementData[size - 1] = o;
+	}
+
+	private void ensureCapacity(int minCapacity) {
+		// TODO Auto-generated method stub
+		if (minCapacity <= elementData.length) { // 当满足小于等于的情况 ???
+			return;
+		} else {
+			elementData = Arrays.copyOf(elementData, minCapacity); // elementData写错为elementDta，导致报错 elementDta
+																	// cannot be
+																	// resolved
+																	// as a
+																	// variable
+			// 这里为什么不直接是minCapacity 而要加上原始elementData.length？？？？
+		}
+	}
+
+	@Override
+	public void add(int index, Object o) {
+		// TODO Auto-generated method stub
+		if (index > size || index < 0) {
+			throw new ArrayIndexOutOfBoundsException();
+		}
+		ensureCapacity(++size); // size自加操作
+		for (int i = size - 2; i > index - 1; i--) { // for中用';'号隔开;
+														// ？？？i应该从size-2开始赋值
+														// ？？？终止条件为i>index-1
+			elementData[i + 1] = elementData[i];
+		}
+		elementData[index] = o; // 插入元素
+	}
+
+	@Override
+	public Object remove(int index) {
+		if (this.size > 0 && index < (this.size)) {
+			Object o = elementData[index];
+			for (int i = index; i < this.size; i++) {
+				elementData[i] = elementData[i + 1];
+			}
+			this.size--;
+			return o;
+		} else {
+			return null;
+		}
+	}
+
+	@Override
+	public Object get(int index) {
+		// TODO Auto-generated method stub
+		return elementData[index]; // 必须进行角标越界检查吗？？？
+	}
+
+	@Override
+	public int size() {
+		// TODO Auto-generated method stub
+		return this.size;
+	}
+
+}
diff --git a/group05/810574652/src/com/github/PingPi357/coding2017/basic/LinkedList.java b/group05/810574652/src/com/github/PingPi357/coding2017/basic/LinkedList.java
new file mode 100644
index 0000000000..4e1ebda327
--- /dev/null
+++ b/group05/810574652/src/com/github/PingPi357/coding2017/basic/LinkedList.java
@@ -0,0 +1,131 @@
+package com.github.PingPi357.coding2017.basic;
+
+
+//实现单向单端列表
+public class LinkedList implements List {
+	private Node head = new Node(); // 定义链表的头节点
+	private Node current;
+	private int size;
+
+	public LinkedList() {
+		head = null;
+		size = 0;
+	}
+
+	@Override
+	public void add(Object o) {
+		if (null == head) { // 头结点为空，直接放在头结点上
+			head.data = o;
+			head.next = null;
+			size++;
+		} else {
+			current = head;
+			while (!(current.next == null)) { // 找到链表的末尾节点，在其后增加
+				current = current.next;
+			}
+			current.next = new Node();
+			current.next.data = o;
+			current.next.next = null;
+			size++;
+		}
+	}
+
+	public void addFirst(Object o) {
+		if (null == head) {
+			head.data = o;
+			head.next = null;
+			size++;
+		} else {
+			current = new Node();
+			current.data = o;
+			current.next = head;
+			head = current;
+			size++;
+		}
+	}
+
+	public void addLast(Object o) {
+		if (!(head == null)) {
+			current = head;
+			while (!(current.next == null)) {
+				current = current.next;
+			}
+			current.next = new Node();
+			current.next.data = o;
+			current.next.next = current.next;
+			size++;
+		}
+	}
+
+	@Override
+	public void add(int index, Object o) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public Object remove(int index) {
+		// TODO Auto-generated method stub
+		if (index < size && index > 1) { // 为什么index>1???
+			current = head;
+			for (int i = 0; i < index - 1; i++) {
+				current = current.next; // 遍历到指定到index的上一个节点
+			}
+			current.next = current.next.next;
+			size--;
+		}
+		return null;
+	}
+
+	public Object removeFirst() {
+		if (!(head == null)) {
+			Node removeHead = head;
+			head.next = head.next.next;
+			size--;
+			return removeHead;
+		} else
+			return null;
+	}
+
+	public Object removeLast() {
+		if (!(head == null)) {
+			Node theNext = current.next;
+			Node oldLast;
+			while (theNext.next != null) {
+				current = theNext;
+				theNext = theNext.next;
+			}
+			oldLast = current.next;
+			current.next = theNext.next;
+
+			size--;
+			return oldLast;
+		} else
+			return null;
+
+	}
+
+	@Override
+	public Object get(int index) {
+		// TODO Auto-generated method stub
+		if (index < size) {
+			current = head;
+			for (int i = 0; i < index; i++) {
+				current = current.next;
+			}
+			return current.data;
+		} else
+			return null;
+	}
+
+	@Override
+	public int size() {
+		return this.size;
+	}
+
+	private static class Node { // 创建Node类，定义Node类的两个属性
+		Object data;
+		Node next;
+	}
+
+}
diff --git a/group05/810574652/src/com/github/PingPi357/coding2017/basic/List.java b/group05/810574652/src/com/github/PingPi357/coding2017/basic/List.java
new file mode 100644
index 0000000000..d9cbdec7b4
--- /dev/null
+++ b/group05/810574652/src/com/github/PingPi357/coding2017/basic/List.java
@@ -0,0 +1,17 @@
+package com.github.PingPi357.coding2017.basic;
+
+public interface List {
+	public void add(Object o);
+
+	public void add(int index, Object o); // Object 首字母大写,不然会出现"object" can not
+											// be resolved a type错误
+
+	public Object remove(int index);
+
+	public Object get(int index);
+
+	public int size(); // 获取List的实际大小,而length定义的是总的容量
+	/*
+	 * public void change(int index, Object o); 实现改变特定index处的值
+	 */
+}
\ No newline at end of file
diff --git a/group05/810574652/src/com/github/PingPi357/coding2017/basic/Queue.java b/group05/810574652/src/com/github/PingPi357/coding2017/basic/Queue.java
new file mode 100644
index 0000000000..709d0f4059
--- /dev/null
+++ b/group05/810574652/src/com/github/PingPi357/coding2017/basic/Queue.java
@@ -0,0 +1,18 @@
+package com.github.PingPi357.coding2017.basic;
+
+public class Queue {
+	private LinkedList linkedList = new LinkedList();
+
+	public void enQueue(Object o) {
+		linkedList.addLast(o);
+	}
+
+	public Object deQueue() {
+		Object removeQueue = linkedList.removeFirst();
+		return removeQueue;
+	}
+
+	public int size() {
+		return linkedList.size();
+	}
+}
diff --git a/group05/810574652/src/com/github/PingPi357/coding2017/basic/Stack.java b/group05/810574652/src/com/github/PingPi357/coding2017/basic/Stack.java
new file mode 100644
index 0000000000..2267cd05d4
--- /dev/null
+++ b/group05/810574652/src/com/github/PingPi357/coding2017/basic/Stack.java
@@ -0,0 +1,33 @@
+package com.github.PingPi357.coding2017.basic;
+
+import java.util.EmptyStackException;
+
+public class Stack {
+	private ArrayList elementData = new ArrayList();
+	int size = 0;
+
+	public void push(Object o){
+		elementData.add(o);
+		size++;
+	}
+
+	public Object pop(){
+		if(this.isEmpty()==true)
+		{
+			throw new EmptyStackException();
+		}
+		ArrayList popData =  (ArrayList) elementData.remove(elementData.size()-1);
+		size--;
+		return popData;
+	}
+
+	public Object peek(){
+		return elementData.get(elementData.size()-1);
+	}
+	public boolean isEmpty(){
+		return elementData.size()==0;
+	}
+	public int size(){
+		return this.size;
+	}
+}
diff --git "a/group05/810574652/src/com/github/PingPi357/coding2017/basic/\350\257\264\346\230\216" "b/group05/810574652/src/com/github/PingPi357/coding2017/basic/\350\257\264\346\230\216"
new file mode 100644
index 0000000000..8fd2d3fbb1
--- /dev/null
+++ "b/group05/810574652/src/com/github/PingPi357/coding2017/basic/\350\257\264\346\230\216"
@@ -0,0 +1,2 @@
+代码实现主要参考了waking2017(441517454)和C-Bobo(183127807)两位的代码完成，
+自己仿照敲了一遍，加了些注释，同时在此基础上改了些

From 4d93cba630afafe18767a46faa76ef4936ed6da2 Mon Sep 17 00:00:00 2001
From: nitasty <nitasty@163.com>
Date: Mon, 27 Feb 2017 09:22:10 +0800
Subject: [PATCH 28/31] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A7=E6=96=87?=
 =?UTF-8?q?=E4=BB=B6=E7=9B=AE=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 coding2017-1 | 1 -
 1 file changed, 1 deletion(-)
 delete mode 160000 coding2017-1

diff --git a/coding2017-1 b/coding2017-1
deleted file mode 160000
index b5be7e853c..0000000000
--- a/coding2017-1
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b5be7e853cd9d2f5bbcc43149dc4df83749759a2

From 698ff8b0687a5e06a2e7c797ec1921a49d11a4f8 Mon Sep 17 00:00:00 2001
From: "songbao.yang" <songbao.yang@qunar.com>
Date: Mon, 27 Feb 2017 10:47:55 +0800
Subject: [PATCH 29/31] ignore

---
 .gitignore          |   1 +
 .idea/workspace.xml | 196 ++++++++------------------------------------
 2 files changed, 37 insertions(+), 160 deletions(-)

diff --git a/.gitignore b/.gitignore
index ec55baf87d..f2a07e54bd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,3 +14,4 @@ hs_err_pid*
 #ide config
 .metadata
 .recommenders
+.idea
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 702d9b36d0..a271082685 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,11 +2,8 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="400776d6-3bbb-471f-a2c6-924f436f81ac" name="Default" comment="">
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/vcs.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/group05/578505552/578505552.iml" afterPath="$PROJECT_DIR$/group05/578505552/578505552.iml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/ArrayList.java" afterPath="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/ArrayList.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java" afterPath="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/LinkedList.java" afterPath="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/LinkedList.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.gitignore" afterPath="$PROJECT_DIR$/.gitignore" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
     </list>
     <ignored path="coding2017.iws" />
     <ignored path=".idea/workspace.xml" />
@@ -73,16 +70,6 @@
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="QueueTest.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/group05/578505552/src/test/java/com/coding/basic/QueueTest.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="357">
-              <caret line="17" column="11" selection-start-line="17" selection-start-column="5" selection-end-line="17" selection-end-column="11" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
       <file leaf-file-name="StackTest.java" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/group05/578505552/src/test/java/com/coding/basic/StackTest.java">
           <provider selected="true" editor-type-id="text-editor">
@@ -108,11 +95,11 @@
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="BinaryTreeNode.java" pinned="false" current-in-tab="true">
+      <file leaf-file-name="BinaryTreeNode.java" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="231">
-              <caret line="42" column="46" selection-start-line="42" selection-start-column="46" selection-end-line="42" selection-end-column="46" />
+            <state relative-caret-position="724">
+              <caret line="50" column="31" selection-start-line="50" selection-start-column="31" selection-end-line="50" selection-end-column="31" />
               <folding>
                 <element signature="e#222#223#0" expanded="true" />
                 <element signature="e#240#241#0" expanded="true" />
@@ -131,6 +118,16 @@
           </provider>
         </entry>
       </file>
+      <file leaf-file-name=".gitignore" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/.gitignore">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="336">
+              <caret line="16" column="5" selection-start-line="16" selection-start-column="5" selection-end-line="16" selection-end-column="5" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
       <file leaf-file-name="Integer.java" pinned="false" current-in-tab="false">
         <entry file="jar://C:/Program Files/Java/jdk1.8.0_92/src.zip!/java/lang/Integer.java">
           <provider selected="true" editor-type-id="text-editor">
@@ -172,6 +169,7 @@
         <option value="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/ArrayList.java" />
         <option value="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/LinkedList.java" />
         <option value="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java" />
+        <option value="$PROJECT_DIR$/.gitignore" />
       </list>
     </option>
   </component>
@@ -192,10 +190,10 @@
     <treeState />
   </component>
   <component name="ProjectFrameBounds">
-    <option name="x" value="-8" />
-    <option name="y" value="-8" />
-    <option name="width" value="1382" />
-    <option name="height" value="744" />
+    <option name="x" value="1358" />
+    <option name="y" value="-888" />
+    <option name="width" value="1936" />
+    <option name="height" value="1216" />
   </component>
   <component name="ProjectLevelVcsManager" settingsEditedManually="false">
     <OptionsSetting value="true" id="Add" />
@@ -241,136 +239,6 @@
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
           </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="coding2017" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="coding2017" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="group05" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="coding2017" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="coding2017" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="group05" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="578505552" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="coding2017" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="coding2017" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="group05" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="578505552" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="src" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="test" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="java" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="coding2017" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="coding2017" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="group05" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="578505552" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="src" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="test" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="java" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="basic" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="coding2017" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="coding2017" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="group05" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="578505552" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="src" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="main" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="java" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="basic" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
         </subPane>
       </pane>
       <pane id="PackagesPane" />
@@ -824,16 +692,16 @@
       <option name="number" value="Default" />
       <option name="presentableId" value="Default" />
       <updated>1488124662643</updated>
-      <workItem from="1488124668398" duration="2735000" />
+      <workItem from="1488124668398" duration="3246000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="2735000" />
+    <option name="totallyTimeSpent" value="3246000" />
   </component>
   <component name="ToolWindowManager">
-    <frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
-    <editor active="true" />
+    <frame x="1358" y="-888" width="1936" height="1216" extended-state="6" />
+    <editor active="false" />
     <layout>
       <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
@@ -843,10 +711,10 @@
       <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32980332" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
       <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.39962122" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
       <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
       <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24962178" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.17590618" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
@@ -998,8 +866,8 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="231">
-          <caret line="42" column="46" selection-start-line="42" selection-start-column="46" selection-end-line="42" selection-end-column="46" />
+        <state relative-caret-position="724">
+          <caret line="50" column="31" selection-start-line="50" selection-start-column="31" selection-end-line="50" selection-end-column="31" />
           <folding>
             <element signature="e#222#223#0" expanded="true" />
             <element signature="e#240#241#0" expanded="true" />
@@ -1017,5 +885,13 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/.gitignore">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="336">
+          <caret line="16" column="5" selection-start-line="16" selection-start-column="5" selection-end-line="16" selection-end-column="5" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>
\ No newline at end of file

From 19e93f98c9f762a45476a58a28311c821cb7b1b4 Mon Sep 17 00:00:00 2001
From: "songbao.yang" <songbao.yang@qunar.com>
Date: Mon, 27 Feb 2017 10:48:37 +0800
Subject: [PATCH 30/31] ignore

---
 .idea/coding2017.iml                          |  12 -
 .idea/compiler.xml                            |  32 -
 .idea/copyright/profiles_settings.xml         |   3 -
 .idea/encodings.xml                           |   6 -
 .idea/libraries/Maven__junit_junit_4_12.xml   |  13 -
 .../Maven__org_hamcrest_hamcrest_core_1_3.xml |  13 -
 .idea/misc.xml                                |  88 --
 .idea/modules.xml                             |   9 -
 .idea/vcs.xml                                 |   6 -
 .idea/workspace.xml                           | 897 ------------------
 10 files changed, 1079 deletions(-)
 delete mode 100644 .idea/coding2017.iml
 delete mode 100644 .idea/compiler.xml
 delete mode 100644 .idea/copyright/profiles_settings.xml
 delete mode 100644 .idea/encodings.xml
 delete mode 100644 .idea/libraries/Maven__junit_junit_4_12.xml
 delete mode 100644 .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
 delete mode 100644 .idea/misc.xml
 delete mode 100644 .idea/modules.xml
 delete mode 100644 .idea/vcs.xml
 delete mode 100644 .idea/workspace.xml

diff --git a/.idea/coding2017.iml b/.idea/coding2017.iml
deleted file mode 100644
index 92999fd331..0000000000
--- a/.idea/coding2017.iml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" inherit-compiler-output="true">
-    <exclude-output />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/group05/578505552/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/group05/578505552/src/test/java" isTestSource="false" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index 710011a27c..0000000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="CompilerConfiguration">
-    <resourceExtensions />
-    <wildcardResourcePatterns>
-      <entry name="!?*.java" />
-      <entry name="!?*.form" />
-      <entry name="!?*.class" />
-      <entry name="!?*.groovy" />
-      <entry name="!?*.scala" />
-      <entry name="!?*.flex" />
-      <entry name="!?*.kt" />
-      <entry name="!?*.clj" />
-      <entry name="!?*.aj" />
-    </wildcardResourcePatterns>
-    <annotationProcessing>
-      <profile default="true" name="Default" enabled="false">
-        <processorPath useClasspath="true" />
-      </profile>
-      <profile default="false" name="Maven default annotation processors profile" enabled="true">
-        <sourceOutputDir name="target/generated-sources/annotations" />
-        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
-        <outputRelativeToContentRoot value="true" />
-        <processorPath useClasspath="true" />
-        <module name="578505552" />
-      </profile>
-    </annotationProcessing>
-    <bytecodeTargetLevel>
-      <module name="578505552" target="1.5" />
-    </bytecodeTargetLevel>
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
deleted file mode 100644
index c7d1c5a837..0000000000
--- a/.idea/copyright/profiles_settings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<component name="CopyrightManager">
-  <settings default="" />
-</component>
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index 6b31afc95b..0000000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Encoding">
-    <file url="file://$PROJECT_DIR$/group05/578505552" charset="UTF-8" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__junit_junit_4_12.xml b/.idea/libraries/Maven__junit_junit_4_12.xml
deleted file mode 100644
index d3b71924f0..0000000000
--- a/.idea/libraries/Maven__junit_junit_4_12.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: junit:junit:4.12">
-    <CLASSES>
-      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ 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
deleted file mode 100644
index e5d35d8742..0000000000
--- a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: org.hamcrest:hamcrest-core:1.3">
-    <CLASSES>
-      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 4c4ade3a7c..0000000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ClientPropertiesManager">
-    <properties class="javax.swing.AbstractButton">
-      <property name="hideActionText" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JComponent">
-      <property name="html.disable" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JEditorPane">
-      <property name="JEditorPane.w3cLengthUnits" class="java.lang.Boolean" />
-      <property name="JEditorPane.honorDisplayProperties" class="java.lang.Boolean" />
-      <property name="charset" class="java.lang.String" />
-    </properties>
-    <properties class="javax.swing.JList">
-      <property name="List.isFileList" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JPasswordField">
-      <property name="JPasswordField.cutCopyAllowed" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JSlider">
-      <property name="Slider.paintThumbArrowShape" class="java.lang.Boolean" />
-      <property name="JSlider.isFilled" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JTable">
-      <property name="Table.isFileList" class="java.lang.Boolean" />
-      <property name="JTable.autoStartsEdit" class="java.lang.Boolean" />
-      <property name="terminateEditOnFocusLost" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JToolBar">
-      <property name="JToolBar.isRollover" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JTree">
-      <property name="JTree.lineStyle" class="java.lang.String" />
-    </properties>
-    <properties class="javax.swing.text.JTextComponent">
-      <property name="caretAspectRatio" class="java.lang.Double" />
-      <property name="caretWidth" class="java.lang.Integer" />
-    </properties>
-  </component>
-  <component name="EclipseCodeFormatter">
-    <option name="defaultSettings" value="true" />
-    <option name="formatter" value="ECLIPSE" />
-    <option name="id" value="1473405887727" />
-    <option name="importOrderConfigFilePath" value="$USER_HOME$/Desktop/Qunar.xml" />
-    <option name="importOrderFromFile" value="true" />
-    <option name="name" value="default" />
-    <option name="pathToConfigFileJava" value="$USER_HOME$/Desktop/Qunar.xml" />
-    <option name="selectedJavaProfile" value="Qunar" />
-  </component>
-  <component name="EntryPointsManager">
-    <entry_points version="2.0" />
-  </component>
-  <component name="MavenProjectsManager">
-    <option name="originalFiles">
-      <list>
-        <option value="$PROJECT_DIR$/group05/578505552/pom.xml" />
-      </list>
-    </option>
-  </component>
-  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
-    <OptionsSetting value="true" id="Add" />
-    <OptionsSetting value="true" id="Remove" />
-    <OptionsSetting value="true" id="Checkout" />
-    <OptionsSetting value="true" id="Update" />
-    <OptionsSetting value="true" id="Status" />
-    <OptionsSetting value="true" id="Edit" />
-    <ConfirmationsSetting value="0" id="Add" />
-    <ConfirmationsSetting value="0" id="Remove" />
-  </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
-  <component name="masterDetails">
-    <states>
-      <state key="ProjectJDKs.UI">
-        <settings>
-          <last-edited>1.7</last-edited>
-          <splitter-proportions>
-            <option name="proportions">
-              <list>
-                <option value="0.31093884" />
-              </list>
-            </option>
-          </splitter-proportions>
-        </settings>
-      </state>
-    </states>
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 739a5428bb..0000000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectModuleManager">
-    <modules>
-      <module fileurl="file://$PROJECT_DIR$/group05/578505552/578505552.iml" filepath="$PROJECT_DIR$/group05/578505552/578505552.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/coding2017.iml" filepath="$PROJECT_DIR$/.idea/coding2017.iml" />
-    </modules>
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 35eb1ddfbb..0000000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="VcsDirectoryMappings">
-    <mapping directory="" vcs="Git" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
deleted file mode 100644
index a271082685..0000000000
--- a/.idea/workspace.xml
+++ /dev/null
@@ -1,897 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ChangeListManager">
-    <list default="true" id="400776d6-3bbb-471f-a2c6-924f436f81ac" name="Default" comment="">
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.gitignore" afterPath="$PROJECT_DIR$/.gitignore" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
-    </list>
-    <ignored path="coding2017.iws" />
-    <ignored path=".idea/workspace.xml" />
-    <ignored path=".idea/dataSources.local.xml" />
-    <ignored path="$PROJECT_DIR$/group05/578505552/target/" />
-    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
-    <option name="TRACKING_ENABLED" value="true" />
-    <option name="SHOW_DIALOG" value="false" />
-    <option name="HIGHLIGHT_CONFLICTS" value="true" />
-    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
-    <option name="LAST_RESOLUTION" value="IGNORE" />
-  </component>
-  <component name="CreatePatchCommitExecutor">
-    <option name="PATCH_PATH" value="" />
-  </component>
-  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
-  <component name="FavoritesManager">
-    <favorites_list name="coding2017" />
-  </component>
-  <component name="FileEditorManager">
-    <leaf>
-      <file leaf-file-name="LinkedList.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/LinkedList.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="357">
-              <caret line="17" column="25" selection-start-line="17" selection-start-column="25" selection-end-line="17" selection-end-column="25" />
-              <folding>
-                <element signature="e#1738#1739#0" expanded="true" />
-                <element signature="e#1764#1765#0" expanded="true" />
-                <element signature="e#2875#2876#0" expanded="true" />
-                <element signature="e#2898#2899#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="List.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/List.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="126">
-              <caret line="6" column="17" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="Queue.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/Queue.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="168">
-              <caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="Stack.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/Stack.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="185">
-              <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="StackTest.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/group05/578505552/src/test/java/com/coding/basic/StackTest.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="168">
-              <caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="ArrayList.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/ArrayList.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="42">
-              <caret line="83" column="30" selection-start-line="83" selection-start-column="30" selection-end-line="83" selection-end-column="30" />
-              <folding>
-                <element signature="e#2026#2027#0" expanded="true" />
-                <element signature="e#2049#2050#0" expanded="true" />
-                <element signature="e#2180#2181#0" expanded="true" />
-                <element signature="e#2225#2226#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="BinaryTreeNode.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="724">
-              <caret line="50" column="31" selection-start-line="50" selection-start-column="31" selection-end-line="50" selection-end-column="31" />
-              <folding>
-                <element signature="e#222#223#0" expanded="true" />
-                <element signature="e#240#241#0" expanded="true" />
-                <element signature="e#277#278#0" expanded="true" />
-                <element signature="e#300#301#0" expanded="true" />
-                <element signature="e#335#336#0" expanded="true" />
-                <element signature="e#353#354#0" expanded="true" />
-                <element signature="e#397#398#0" expanded="true" />
-                <element signature="e#420#421#0" expanded="true" />
-                <element signature="e#456#457#0" expanded="true" />
-                <element signature="e#475#476#0" expanded="true" />
-                <element signature="e#521#522#0" expanded="true" />
-                <element signature="e#546#547#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name=".gitignore" pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/.gitignore">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="336">
-              <caret line="16" column="5" selection-start-line="16" selection-start-column="5" selection-end-line="16" selection-end-column="5" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="Integer.java" pinned="false" current-in-tab="false">
-        <entry file="jar://C:/Program Files/Java/jdk1.8.0_92/src.zip!/java/lang/Integer.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="332">
-              <caret line="1214" column="15" selection-start-line="1214" selection-start-column="15" selection-end-line="1214" selection-end-column="15" />
-              <folding>
-                <element signature="e#46394#46395#0" expanded="true" />
-                <element signature="e#46458#46459#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="Iterator.java" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/Iterator.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="126">
-              <caret line="6" column="17" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-    </leaf>
-  </component>
-  <component name="Git.Settings">
-    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
-  </component>
-  <component name="GradleLocalSettings">
-    <option name="externalProjectsViewState">
-      <projects_view />
-    </option>
-  </component>
-  <component name="IdeDocumentHistory">
-    <option name="CHANGED_PATHS">
-      <list>
-        <option value="$PROJECT_DIR$/group05/578505552/src/test/java/com/coding/basic/QueueTest.java" />
-        <option value="$PROJECT_DIR$/group05/578505552/pom.xml" />
-        <option value="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/ArrayList.java" />
-        <option value="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/LinkedList.java" />
-        <option value="$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java" />
-        <option value="$PROJECT_DIR$/.gitignore" />
-      </list>
-    </option>
-  </component>
-  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
-  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
-  <component name="JsGulpfileManager">
-    <detection-done>true</detection-done>
-    <sorting>DEFINITION_ORDER</sorting>
-  </component>
-  <component name="MavenImportPreferences">
-    <option name="generalSettings">
-      <MavenGeneralSettings>
-        <option name="mavenHome" value="Bundled (Maven 3)" />
-      </MavenGeneralSettings>
-    </option>
-  </component>
-  <component name="MavenProjectNavigator">
-    <treeState />
-  </component>
-  <component name="ProjectFrameBounds">
-    <option name="x" value="1358" />
-    <option name="y" value="-888" />
-    <option name="width" value="1936" />
-    <option name="height" value="1216" />
-  </component>
-  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
-    <OptionsSetting value="true" id="Add" />
-    <OptionsSetting value="true" id="Remove" />
-    <OptionsSetting value="true" id="Checkout" />
-    <OptionsSetting value="true" id="Update" />
-    <OptionsSetting value="true" id="Status" />
-    <OptionsSetting value="true" id="Edit" />
-    <ConfirmationsSetting value="0" id="Add" />
-    <ConfirmationsSetting value="0" id="Remove" />
-  </component>
-  <component name="ProjectView">
-    <navigator currentView="ProjectPane" proportions="" version="1">
-      <flattenPackages />
-      <showMembers />
-      <showModules />
-      <showLibraryContents />
-      <hideEmptyPackages />
-      <abbreviatePackageNames />
-      <autoscrollToSource />
-      <autoscrollFromSource />
-      <sortByType />
-      <manualOrder />
-      <foldersAlwaysOnTop value="true" />
-    </navigator>
-    <panes>
-      <pane id="Scope" />
-      <pane id="ProjectPane">
-        <subPane>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="coding2017" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-          </PATH>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="coding2017" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="coding2017" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-        </subPane>
-      </pane>
-      <pane id="PackagesPane" />
-      <pane id="Scratches" />
-    </panes>
-  </component>
-  <component name="PropertiesComponent">
-    <property name="aspect.path.notification.shown" value="true" />
-    <property name="WebServerToolWindowFactoryState" value="false" />
-    <property name="js-jscs-nodeInterpreter" value="C:\Program Files\nodejs\node.exe" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/group05/578505552/pom.xml" />
-  </component>
-  <component name="RunManager">
-    <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
-      <module name="" />
-      <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
-      <option name="PROGRAM_PARAMETERS" />
-      <method />
-    </configuration>
-    <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application">
-      <module name="" />
-      <option name="DEPLOY" value="true" />
-      <option name="ARTIFACT_NAME" value="" />
-      <option name="PM_INSTALL_OPTIONS" value="" />
-      <option name="ACTIVITY_EXTRA_FLAGS" value="" />
-      <option name="MODE" value="default_activity" />
-      <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
-      <option name="PREFERRED_AVD" value="" />
-      <option name="CLEAR_LOGCAT" value="false" />
-      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
-      <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
-      <option name="FORCE_STOP_RUNNING_APP" value="true" />
-      <option name="DEBUGGER_TYPE" value="Java" />
-      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
-      <option name="PREFERRED_AVD" value="" />
-      <Java />
-      <Profilers>
-        <option name="GAPID_DISABLE_PCS" value="false" />
-      </Profilers>
-      <option name="DEEP_LINK" value="" />
-      <option name="ACTIVITY_CLASS" value="" />
-      <method />
-    </configuration>
-    <configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
-      <module name="" />
-      <option name="TESTING_TYPE" value="0" />
-      <option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
-      <option name="METHOD_NAME" value="" />
-      <option name="CLASS_NAME" value="" />
-      <option name="PACKAGE_NAME" value="" />
-      <option name="EXTRA_OPTIONS" value="" />
-      <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
-      <option name="PREFERRED_AVD" value="" />
-      <option name="CLEAR_LOGCAT" value="false" />
-      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
-      <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
-      <option name="FORCE_STOP_RUNNING_APP" value="true" />
-      <option name="DEBUGGER_TYPE" value="Java" />
-      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
-      <option name="PREFERRED_AVD" value="" />
-      <Java />
-      <Profilers>
-        <option name="GAPID_DISABLE_PCS" value="false" />
-      </Profilers>
-      <method />
-    </configuration>
-    <configuration default="true" type="Applet" factoryName="Applet">
-      <option name="HTML_USED" value="false" />
-      <option name="WIDTH" value="400" />
-      <option name="HEIGHT" value="300" />
-      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
-      <module />
-      <method />
-    </configuration>
-    <configuration default="true" type="Application" factoryName="Application">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="VM_PARAMETERS" />
-      <option name="PROGRAM_PARAMETERS" />
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="ENABLE_SWING_INSPECTOR" value="false" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <module name="" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="ArquillianJUnit" factoryName="">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <module name="" />
-      <option name="arquillianRunConfiguration">
-        <value>
-          <option name="containerStateName" value="" />
-        </value>
-      </option>
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="PACKAGE_NAME" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="METHOD_NAME" />
-      <option name="TEST_OBJECT" value="class" />
-      <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <envs />
-      <patterns />
-      <method />
-    </configuration>
-    <configuration default="true" type="ArquillianTestNG" factoryName="">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <module name="" />
-      <option name="arquillianRunConfiguration">
-        <value>
-          <option name="containerStateName" value="" />
-        </value>
-      </option>
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="SUITE_NAME" />
-      <option name="PACKAGE_NAME" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="METHOD_NAME" />
-      <option name="GROUP_NAME" />
-      <option name="TEST_OBJECT" value="CLASS" />
-      <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="OUTPUT_DIRECTORY" />
-      <option name="ANNOTATION_TYPE" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <option name="USE_DEFAULT_REPORTERS" value="false" />
-      <option name="PROPERTIES_FILE" />
-      <envs />
-      <properties />
-      <listeners />
-      <method />
-    </configuration>
-    <configuration default="true" type="Cold Fusion runner description" factoryName="Cold Fusion" custom_browser="" web_path="">
-      <method />
-    </configuration>
-    <configuration default="true" type="CucumberJavaRunConfigurationType" factoryName="Cucumber java">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <option name="myFilePath" />
-      <option name="GLUE" />
-      <option name="myNameFilter" />
-      <option name="myGeneratedName" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="VM_PARAMETERS" />
-      <option name="PROGRAM_PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="ENABLE_SWING_INSPECTOR" value="false" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <module name="" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="FlashRunConfigurationType" factoryName="Flash App">
-      <option name="BCName" value="" />
-      <option name="IOSSimulatorSdkPath" value="" />
-      <option name="adlOptions" value="" />
-      <option name="airProgramParameters" value="" />
-      <option name="appDescriptorForEmulator" value="Android" />
-      <option name="debugTransport" value="USB" />
-      <option name="debuggerSdkRaw" value="BC SDK" />
-      <option name="emulator" value="NexusOne" />
-      <option name="emulatorAdlOptions" value="" />
-      <option name="fastPackaging" value="true" />
-      <option name="fullScreenHeight" value="0" />
-      <option name="fullScreenWidth" value="0" />
-      <option name="launchUrl" value="false" />
-      <option name="launcherParameters">
-        <LauncherParameters>
-          <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
-          <option name="launcherType" value="OSDefault" />
-          <option name="newPlayerInstance" value="false" />
-          <option name="playerPath" value="FlashPlayerDebugger.exe" />
-        </LauncherParameters>
-      </option>
-      <option name="mobileRunTarget" value="Emulator" />
-      <option name="moduleName" value="" />
-      <option name="overriddenMainClass" value="" />
-      <option name="overriddenOutputFileName" value="" />
-      <option name="overrideMainClass" value="false" />
-      <option name="runTrusted" value="true" />
-      <option name="screenDpi" value="0" />
-      <option name="screenHeight" value="0" />
-      <option name="screenWidth" value="0" />
-      <option name="url" value="http://" />
-      <option name="usbDebugPort" value="7936" />
-      <method />
-    </configuration>
-    <configuration default="true" type="FlexUnitRunConfigurationType" factoryName="FlexUnit" appDescriptorForEmulator="Android" class_name="" emulatorAdlOptions="" method_name="" package_name="" scope="Class">
-      <option name="BCName" value="" />
-      <option name="launcherParameters">
-        <LauncherParameters>
-          <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
-          <option name="launcherType" value="OSDefault" />
-          <option name="newPlayerInstance" value="false" />
-          <option name="playerPath" value="FlashPlayerDebugger.exe" />
-        </LauncherParameters>
-      </option>
-      <option name="moduleName" value="" />
-      <option name="trusted" value="true" />
-      <method />
-    </configuration>
-    <configuration default="true" type="GradleRunConfiguration" factoryName="Gradle">
-      <ExternalSystemSettings>
-        <option name="executionName" />
-        <option name="externalProjectPath" />
-        <option name="externalSystemIdString" value="GRADLE" />
-        <option name="scriptParameters" />
-        <option name="taskDescriptions">
-          <list />
-        </option>
-        <option name="taskNames">
-          <list />
-        </option>
-        <option name="vmOptions" />
-      </ExternalSystemSettings>
-      <method />
-    </configuration>
-    <configuration default="true" type="GrailsRunConfigurationType" factoryName="Grails">
-      <setting name="vmparams" value="" />
-      <setting name="cmdLine" value="run-app" />
-      <setting name="passParentEnv" value="true" />
-      <setting name="launchBrowser" value="true" />
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <method />
-    </configuration>
-    <configuration default="true" type="JUnit" factoryName="JUnit">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <module name="" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="PACKAGE_NAME" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="METHOD_NAME" />
-      <option name="TEST_OBJECT" value="class" />
-      <option name="VM_PARAMETERS" value="-ea" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <envs />
-      <patterns />
-      <method />
-    </configuration>
-    <configuration default="true" type="JUnitTestDiscovery" factoryName="JUnit Test Discovery" changeList="All">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <module name="" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="PACKAGE_NAME" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="METHOD_NAME" />
-      <option name="TEST_OBJECT" value="class" />
-      <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <envs />
-      <patterns />
-      <method />
-    </configuration>
-    <configuration default="true" type="JarApplication" factoryName="JAR Application">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="Java Scratch" factoryName="Java Scratch">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <option name="SCRATCH_FILE_ID" value="0" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="VM_PARAMETERS" />
-      <option name="PROGRAM_PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="ENABLE_SWING_INSPECTOR" value="false" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <module name="" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
-      <method />
-    </configuration>
-    <configuration default="true" type="JetRunConfigurationType" factoryName="Kotlin">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="VM_PARAMETERS" />
-      <option name="PROGRAM_PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <module name="coding2017" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="KotlinStandaloneScriptRunConfigurationType" factoryName="Kotlin script">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <option name="filePath" />
-      <option name="vmParameters" />
-      <option name="alternativeJrePath" />
-      <option name="programParameters" />
-      <option name="passParentEnvs" value="true" />
-      <option name="workingDirectory" />
-      <option name="isAlternativeJrePathEnabled" value="false" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="Remote" factoryName="Remote">
-      <option name="USE_SOCKET_TRANSPORT" value="true" />
-      <option name="SERVER_MODE" value="false" />
-      <option name="SHMEM_ADDRESS" value="javadebug" />
-      <option name="HOST" value="localhost" />
-      <option name="PORT" value="5005" />
-      <method />
-    </configuration>
-    <configuration default="true" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <module name="" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="TestNG" factoryName="TestNG">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <module name="" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="SUITE_NAME" />
-      <option name="PACKAGE_NAME" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="METHOD_NAME" />
-      <option name="GROUP_NAME" />
-      <option name="TEST_OBJECT" value="CLASS" />
-      <option name="VM_PARAMETERS" value="-ea" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
-      <option name="OUTPUT_DIRECTORY" />
-      <option name="ANNOTATION_TYPE" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <option name="USE_DEFAULT_REPORTERS" value="false" />
-      <option name="PROPERTIES_FILE" />
-      <envs />
-      <properties />
-      <listeners />
-      <method />
-    </configuration>
-    <configuration default="true" type="TestNGTestDiscovery" factoryName="TestNG Test Discovery" changeList="All">
-      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-      <module name="" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="SUITE_NAME" />
-      <option name="PACKAGE_NAME" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="METHOD_NAME" />
-      <option name="GROUP_NAME" />
-      <option name="TEST_OBJECT" value="CLASS" />
-      <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" />
-      <option name="OUTPUT_DIRECTORY" />
-      <option name="ANNOTATION_TYPE" />
-      <option name="ENV_VARIABLES" />
-      <option name="PASS_PARENT_ENVS" value="true" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="singleModule" />
-      </option>
-      <option name="USE_DEFAULT_REPORTERS" value="false" />
-      <option name="PROPERTIES_FILE" />
-      <envs />
-      <properties />
-      <listeners />
-      <method />
-    </configuration>
-    <configuration default="true" type="executeSpecs" factoryName="Gauge Execution">
-      <setting name="environment" value="" />
-      <setting name="specsToExecute" value="" />
-      <setting name="tags" value="" />
-      <setting name="parallelNodes" value="" />
-      <setting name="execInParallel" value="false" />
-      <setting name="programParameters" value="" />
-      <setting name="workingDirectory" value="" />
-      <setting name="moduleName" value="" />
-      <envMap />
-      <setting name="rowsRange" value="" />
-      <method />
-    </configuration>
-    <configuration default="true" type="idea.plugin.jmeter.run.JmeterConfigurationType" factoryName="JMeter">
-      <setting name="testFile" value="" />
-      <setting name="propertyFile" value="" />
-      <setting name="jvmParameters" value="" />
-      <setting name="customParameters" value="" />
-      <setting name="workingDirectory" value="" />
-      <properties />
-      <method />
-    </configuration>
-    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
-      <method />
-    </configuration>
-    <configuration default="true" type="js.build_tools.npm" factoryName="npm">
-      <command value="run-script" />
-      <scripts />
-      <node-interpreter value="project" />
-      <envs />
-      <method />
-    </configuration>
-    <configuration default="true" type="osgi.bnd.run" factoryName="Run Launcher">
-      <method />
-    </configuration>
-    <configuration default="true" type="osgi.bnd.run" factoryName="Test Launcher (JUnit)">
-      <method />
-    </configuration>
-  </component>
-  <component name="ShelveChangesManager" show_recycled="false">
-    <option name="remove_strategy" value="false" />
-  </component>
-  <component name="TaskManager">
-    <task active="true" id="Default" summary="Default task">
-      <changelist id="400776d6-3bbb-471f-a2c6-924f436f81ac" name="Default" comment="" />
-      <created>1488124662643</created>
-      <option name="number" value="Default" />
-      <option name="presentableId" value="Default" />
-      <updated>1488124662643</updated>
-      <workItem from="1488124668398" duration="3246000" />
-    </task>
-    <servers />
-  </component>
-  <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="3246000" />
-  </component>
-  <component name="ToolWindowManager">
-    <frame x="1358" y="-888" width="1936" height="1216" extended-state="6" />
-    <editor active="false" />
-    <layout>
-      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
-      <window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
-      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32980332" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.39962122" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.17590618" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
-      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
-      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
-      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
-      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
-    </layout>
-  </component>
-  <component name="Vcs.Log.UiProperties">
-    <option name="RECENTLY_FILTERED_USER_GROUPS">
-      <collection />
-    </option>
-    <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
-      <collection />
-    </option>
-  </component>
-  <component name="VcsContentAnnotationSettings">
-    <option name="myLimit" value="2678400000" />
-  </component>
-  <component name="XDebuggerManager">
-    <breakpoint-manager />
-    <watches-manager />
-  </component>
-  <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/group05/578505552/.gitignore">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="336">
-          <caret line="16" column="6" selection-start-line="16" selection-start-column="6" selection-end-line="16" selection-end-column="6" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/group05/578505552/578505552.iml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/group05/578505552/pom.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="385">
-          <caret line="24" column="0" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/group05/578505552/src/test/java/com/coding/basic/ArrayListTest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="84">
-          <caret line="7" column="3" selection-start-line="7" selection-start-column="3" selection-end-line="7" selection-end-column="3" />
-          <folding>
-            <element signature="imports" expanded="false" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/group05/578505552/src/test/java/com/coding/basic/QueueTest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="357">
-          <caret line="17" column="11" selection-start-line="17" selection-start-column="5" selection-end-line="17" selection-end-column="11" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/group05/578505552/src/test/java/com/coding/basic/StackTest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="168">
-          <caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/Iterator.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="126">
-          <caret line="6" column="17" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/List.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="126">
-          <caret line="6" column="17" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/Queue.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="168">
-          <caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/Stack.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="185">
-          <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/ArrayList.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="42">
-          <caret line="83" column="30" selection-start-line="83" selection-start-column="30" selection-end-line="83" selection-end-column="30" />
-          <folding>
-            <element signature="e#2026#2027#0" expanded="true" />
-            <element signature="e#2049#2050#0" expanded="true" />
-            <element signature="e#2180#2181#0" expanded="true" />
-            <element signature="e#2225#2226#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/LinkedList.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="357">
-          <caret line="17" column="25" selection-start-line="17" selection-start-column="25" selection-end-line="17" selection-end-column="25" />
-          <folding>
-            <element signature="e#1738#1739#0" expanded="true" />
-            <element signature="e#1764#1765#0" expanded="true" />
-            <element signature="e#2875#2876#0" expanded="true" />
-            <element signature="e#2898#2899#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://C:/Program Files/Java/jdk1.8.0_92/src.zip!/java/lang/Integer.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="332">
-          <caret line="1214" column="15" selection-start-line="1214" selection-start-column="15" selection-end-line="1214" selection-end-column="15" />
-          <folding>
-            <element signature="e#46394#46395#0" expanded="true" />
-            <element signature="e#46458#46459#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/group05/578505552/src/main/java/com/coding/basic/BinaryTreeNode.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="724">
-          <caret line="50" column="31" selection-start-line="50" selection-start-column="31" selection-end-line="50" selection-end-column="31" />
-          <folding>
-            <element signature="e#222#223#0" expanded="true" />
-            <element signature="e#240#241#0" expanded="true" />
-            <element signature="e#277#278#0" expanded="true" />
-            <element signature="e#300#301#0" expanded="true" />
-            <element signature="e#335#336#0" expanded="true" />
-            <element signature="e#353#354#0" expanded="true" />
-            <element signature="e#397#398#0" expanded="true" />
-            <element signature="e#420#421#0" expanded="true" />
-            <element signature="e#456#457#0" expanded="true" />
-            <element signature="e#475#476#0" expanded="true" />
-            <element signature="e#521#522#0" expanded="true" />
-            <element signature="e#546#547#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/.gitignore">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="336">
-          <caret line="16" column="5" selection-start-line="16" selection-start-column="5" selection-end-line="16" selection-end-column="5" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-  </component>
-</project>
\ No newline at end of file

From 0731086f13a75667eb8fcf3a11b37448c2c56661 Mon Sep 17 00:00:00 2001
From: "songbao.yang" <songbao.yang@qunar.com>
Date: Mon, 27 Feb 2017 10:50:02 +0800
Subject: [PATCH 31/31] ignore

---
 .gitignore | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index f2a07e54bd..05ba5e4384 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,4 +14,4 @@ hs_err_pid*
 #ide config
 .metadata
 .recommenders
-.idea
+.idea/
