diff --git a/.gitignore b/.gitignore
index 1a08aba0c..8b1378917 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,30 +1 @@
-*.class
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
-
-# Package Files #
-*.jar
-*.war
-*.ear
-target
-
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
-
-#ide config
-.metadata
-.recommenders
-.idea/
-
-
-
-#macOS
-.DS_Store
-
-
-*.iml
-rebel.*
-.rebel.*
-
-target
 
diff --git a/.idea/coding2017.iml b/.idea/coding2017.iml
new file mode 100644
index 000000000..459d465d9
--- /dev/null
+++ b/.idea/coding2017.iml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="false">
+    <output url="file://$MODULE_DIR$/../output" />
+    <output-test url="file://$MODULE_DIR$/../output" />
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/group07/20409287/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/group07/20409287/src/test" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/group07/20409287/src/main/resource" type="java-resource" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module-library" scope="TEST">
+      <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>
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 000000000..96cc43efa
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,22 @@
+<?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>
+    </annotationProcessing>
+  </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 000000000..e7bedf337
--- /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 000000000..f4b0ad32b
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
+    <file url="file://$PROJECT_DIR$/group07/20409287/git命令.txt" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/group07/43819473/git命令.txt" charset="GBK" />
+    <file url="PROJECT" charset="UTF-8" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 000000000..f4be55921
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,36 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0">
+    <option name="myName" value="Project Default" />
+    <inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="TOP_LEVEL_CLASS_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="" />
+        </value>
+      </option>
+      <option name="INNER_CLASS_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="" />
+        </value>
+      </option>
+      <option name="METHOD_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="@return@param@throws or @exception" />
+        </value>
+      </option>
+      <option name="FIELD_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="" />
+        </value>
+      </option>
+      <option name="IGNORE_DEPRECATED" value="false" />
+      <option name="IGNORE_JAVADOC_PERIOD" value="true" />
+      <option name="IGNORE_DUPLICATED_THROWS" value="false" />
+      <option name="IGNORE_POINT_TO_ITSELF" value="false" />
+      <option name="myAdditionalJavadocTags" value="author:" />
+    </inspection_tool>
+  </profile>
+</component>
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 000000000..3b312839b
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,7 @@
+<component name="InspectionProjectProfileManager">
+  <settings>
+    <option name="PROJECT_PROFILE" value="Project Default" />
+    <option name="USE_PROJECT_PROFILE" value="true" />
+    <version value="1.0" />
+  </settings>
+</component>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 000000000..3eb9c7eda
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="EntryPointsManager">
+    <entry_points version="2.0" />
+  </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" />
+</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 000000000..4bb52afa5
--- /dev/null
+++ b/.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$/.idea/coding2017.iml" filepath="$PROJECT_DIR$/.idea/coding2017.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 000000000..e96534fb2
--- /dev/null
+++ b/.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/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 000000000..35eb1ddfb
--- /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 000000000..84fe8f1ac
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,1867 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ChangeListManager">
+    <list default="true" id="f5154d65-61a0-4183-b67f-8ee9e4ca9506" name="Default" comment="" />
+    <ignored path="coding2017.iws" />
+    <ignored path=".idea/workspace.xml" />
+    <ignored path=".idea/dataSources.local.xml" />
+    <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 SIDE_TABS_SIZE_LIMIT_KEY="300">
+      <file leaf-file-name="ArrayListTest.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group07/20409287/src/test/xdx/homework/first/ArrayListTest.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-1665">
+              <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>
+      </file>
+      <file leaf-file-name="Queue.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/Queue.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="285">
+              <caret line="39" column="17" selection-start-line="31" selection-start-column="7" selection-end-line="39" selection-end-column="17" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="LinkedList.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/LinkedList.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="57">
+              <caret line="3" column="21" selection-start-line="3" selection-start-column="21" selection-end-line="3" selection-end-column="21" />
+              <folding>
+                <element signature="e#2308#2309#0" expanded="true" />
+                <element signature="e#2335#2336#0" expanded="true" />
+                <element signature="e#2435#2436#0" expanded="true" />
+                <element signature="e#2467#2468#0" expanded="true" />
+                <element signature="e#4499#4500#0" expanded="true" />
+                <element signature="e#4531#4532#0" expanded="true" />
+                <element signature="e#4679#4680#0" expanded="true" />
+                <element signature="e#4725#4726#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="LinkedListTest.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group07/20409287/src/test/xdx/homework/first/LinkedListTest.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="729">
+              <caret line="213" column="0" selection-start-line="213" selection-start-column="0" selection-end-line="213" selection-end-column="0" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Iterator.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/Iterator.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="171">
+              <caret line="9" column="9" selection-start-line="9" selection-start-column="9" selection-end-line="9" selection-end-column="9" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="ArrayList.java" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/ArrayList.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="129">
+              <caret line="188" column="17" selection-start-line="188" selection-start-column="17" selection-end-line="188" selection-end-column="17" />
+              <folding>
+                <element signature="e#3576#3577#0" expanded="true" />
+                <element signature="e#3631#3632#0" expanded="true" />
+                <element signature="e#3681#3682#0" expanded="true" />
+                <element signature="e#3736#3737#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="BinaryTree.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group07/1058267830/week1/src/com/coding/basic/BinaryTree.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-342">
+              <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>
+      </file>
+      <file leaf-file-name="BinaryTreeNode.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/group07/764189149/src/firstHomeWork/util/BinaryTreeNode.java">
+          <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>
+      </file>
+    </leaf>
+  </component>
+  <component name="FileTemplateManagerImpl">
+    <option name="RECENT_TEMPLATES">
+      <list>
+        <option value="Class" />
+      </list>
+    </option>
+  </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$/group07/43819473/git命令.txt" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homeword/first/Hello.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homeword/first/Iterator.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homeword/first/List.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homeword/first/ArrayList.java" />
+        <option value="$APPLICATION_HOME_DIR$/lib/junit-4.12.jar!/org/junit/internal/runners/model/ReflectiveCallable.class" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/List.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/ArrayList.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/main/java/test/xdx/homework/first/QueueTest.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/ArrayListTest.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/test/xdx/homework/first/ArrayListTest.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/test/xdx/homework/first/ArrrayListTest.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/Queue.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/test/xdx/homework/first/QueueTest.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/test/xdx/homework/first/StackTest.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/Stack.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/git命令.txt" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/test/xdx/homework/first/LinkedListTest.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/LinkedList.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/SortBinaryTree.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/BinaryTree.java" />
+        <option value="$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/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="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="2" 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="group07" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="1520332119" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="1519504320" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="1058267830" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="week1" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="1058267830" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="week1" />
+              <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="com" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="764189149" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="764189149" />
+              <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="firstHomeWork" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="util" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="752262774" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="724319952" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="603622009" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="598812995" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="476770768" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="476770768" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="MyDataStructure" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="476770768" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="MyDataStructure" />
+              <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="com" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="coding" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="328536398" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="178007127" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="43819473" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="20409287" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="20409287" />
+              <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="first" />
+              <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="20409287" />
+              <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>
+          <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="group07" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="20409287" />
+              <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="first" />
+              <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="last_opened_file_path" value="$PROJECT_DIR$/../notify" />
+    <property name="WebServerToolWindowFactoryState" value="false" />
+    <property name="project.structure.last.edited" value="Modules" />
+    <property name="project.structure.proportion" value="0.15" />
+    <property name="project.structure.side.proportion" value="0.2" />
+    <property name="settings.editor.selected.configurable" value="File.Encoding" />
+    <property name="settings.editor.splitter.proportion" value="0.2" />
+  </component>
+  <component name="RecentsManager">
+    <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
+      <recent name="xdx.homework.first" />
+    </key>
+    <key name="CopyClassDialog.RECENTS_KEY">
+      <recent name="xdx.homework.first" />
+    </key>
+    <key name="CopyFile.RECENT_KEYS">
+      <recent name="E:\JavaProjects\coding2017\group07\20409287\src\main\java\xdx\homework\first" />
+      <recent name="E:\JavaProjects\coding2017\group07\20409287\src\main\java\xdx\homeword\first" />
+    </key>
+  </component>
+  <component name="RunManager" selected="JUnit.LinkedListTest.testRemove">
+    <configuration default="false" name="LinkedListTest.testSet" 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="xdx.homework.first.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <module name="coding2017" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" value="xdx.homework.first" />
+      <option name="MAIN_CLASS_NAME" value="xdx.homework.first.LinkedListTest" />
+      <option name="METHOD_NAME" value="testSet" />
+      <option name="TEST_OBJECT" value="method" />
+      <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="false" name="LinkedListTest.testContains" 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="xdx.homework.first.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <module name="coding2017" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" value="xdx.homework.first" />
+      <option name="MAIN_CLASS_NAME" value="xdx.homework.first.LinkedListTest" />
+      <option name="METHOD_NAME" value="testContains" />
+      <option name="TEST_OBJECT" value="method" />
+      <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="false" name="LinkedListTest.testClear" 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="xdx.homework.first.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <module name="coding2017" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" value="xdx.homework.first" />
+      <option name="MAIN_CLASS_NAME" value="xdx.homework.first.LinkedListTest" />
+      <option name="METHOD_NAME" value="testClear" />
+      <option name="TEST_OBJECT" value="method" />
+      <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="false" name="LinkedListTest.testIterator" 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="xdx.homework.first.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <module name="coding2017" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" value="xdx.homework.first" />
+      <option name="MAIN_CLASS_NAME" value="xdx.homework.first.LinkedListTest" />
+      <option name="METHOD_NAME" value="testIterator" />
+      <option name="TEST_OBJECT" value="method" />
+      <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="false" name="LinkedListTest.testRemove" 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="xdx.homework.first.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <module name="coding2017" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" value="xdx.homework.first" />
+      <option name="MAIN_CLASS_NAME" value="xdx.homework.first.LinkedListTest" />
+      <option name="METHOD_NAME" value="testRemove" />
+      <option name="TEST_OBJECT" value="method" />
+      <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="#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" />
+      <setting name="depsClasspath" value="false" />
+      <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="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-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>
+    <list size="5">
+      <item index="0" class="java.lang.String" itemvalue="JUnit.LinkedListTest.testSet" />
+      <item index="1" class="java.lang.String" itemvalue="JUnit.LinkedListTest.testContains" />
+      <item index="2" class="java.lang.String" itemvalue="JUnit.LinkedListTest.testClear" />
+      <item index="3" class="java.lang.String" itemvalue="JUnit.LinkedListTest.testIterator" />
+      <item index="4" class="java.lang.String" itemvalue="JUnit.LinkedListTest.testRemove" />
+    </list>
+    <recent_temporary>
+      <list size="5">
+        <item index="0" class="java.lang.String" itemvalue="JUnit.LinkedListTest.testRemove" />
+        <item index="1" class="java.lang.String" itemvalue="JUnit.LinkedListTest.testIterator" />
+        <item index="2" class="java.lang.String" itemvalue="JUnit.LinkedListTest.testClear" />
+        <item index="3" class="java.lang.String" itemvalue="JUnit.LinkedListTest.testContains" />
+        <item index="4" class="java.lang.String" itemvalue="JUnit.LinkedListTest.testSet" />
+      </list>
+    </recent_temporary>
+  </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="f5154d65-61a0-4183-b67f-8ee9e4ca9506" name="Default" comment="" />
+      <created>1488025326268</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1488025326268</updated>
+      <workItem from="1488025327969" duration="5105000" />
+      <workItem from="1488030489299" duration="88000" />
+      <workItem from="1488030608220" duration="87000" />
+      <workItem from="1488030724343" duration="12435000" />
+      <workItem from="1488043240593" duration="1034000" />
+      <workItem from="1488076291196" duration="5398000" />
+    </task>
+    <servers />
+  </component>
+  <component name="TestHistory">
+    <history-entry file="LinkedListTest_testIterator - 2017.02.26 at 11h 34m 23s.xml">
+      <configuration name="LinkedListTest.testIterator" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="LinkedListTest_testIterator - 2017.02.26 at 11h 34m 28s.xml">
+      <configuration name="LinkedListTest.testIterator" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="LinkedListTest_testIterator - 2017.02.26 at 11h 34m 43s.xml">
+      <configuration name="LinkedListTest.testIterator" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="LinkedListTest_testIterator - 2017.02.26 at 11h 35m 30s.xml">
+      <configuration name="LinkedListTest.testIterator" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="LinkedListTest_testIterator - 2017.02.26 at 11h 35m 34s.xml">
+      <configuration name="LinkedListTest.testIterator" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="LinkedListTest_testRemove - 2017.02.26 at 11h 36m 54s.xml">
+      <configuration name="LinkedListTest.testRemove" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="LinkedListTest_testRemove - 2017.02.26 at 11h 38m 20s.xml">
+      <configuration name="LinkedListTest.testRemove" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="LinkedListTest_testRemove - 2017.02.26 at 11h 39m 49s.xml">
+      <configuration name="LinkedListTest.testRemove" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="LinkedListTest_testRemove - 2017.02.26 at 11h 40m 40s.xml">
+      <configuration name="LinkedListTest.testRemove" configurationId="JUnit" />
+    </history-entry>
+    <history-entry file="LinkedListTest_testRemove - 2017.02.26 at 11h 41m 17s.xml">
+      <configuration name="LinkedListTest.testRemove" configurationId="JUnit" />
+    </history-entry>
+  </component>
+  <component name="TimeTrackingManager">
+    <option name="totallyTimeSpent" value="24147000" />
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="-8" y="-8" width="1382" height="744" 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="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="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.329653" sideWeight="0.5" order="7" 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="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="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.29968455" 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="true" weight="0.33" sideWeight="0.5" order="7" 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="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="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24304539" 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="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3280757" 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="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="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>
+      <option name="time" value="44" />
+    </breakpoint-manager>
+    <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$/group07/20409287/src/main/java/xdx/homework/first/ArrayList.java">
+      <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>
+            <element signature="e#3576#3577#0" expanded="true" />
+            <element signature="e#3631#3632#0" expanded="true" />
+            <element signature="e#3681#3682#0" expanded="true" />
+            <element signature="e#3736#3737#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://C:/Program Files/Java/jdk1.8.0_71/src.zip!/java/util/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="15941">
+          <caret line="839" column="18" selection-start-line="839" selection-start-column="18" selection-end-line="839" selection-end-column="18" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://C:/Program Files/Java/jdk1.8.0_71/src.zip!/java/util/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="4503">
+          <caret line="237" column="12" selection-start-line="237" selection-start-column="12" selection-end-line="237" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="57">
+          <caret line="3" column="17" selection-start-line="3" selection-start-column="17" selection-end-line="3" selection-end-column="17" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1292">
+          <caret line="68" column="15" selection-start-line="68" selection-start-column="15" selection-end-line="68" selection-end-column="15" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/ArrayList.java">
+      <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>
+            <element signature="e#3576#3577#0" expanded="true" />
+            <element signature="e#3631#3632#0" expanded="true" />
+            <element signature="e#3681#3682#0" expanded="true" />
+            <element signature="e#3736#3737#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://C:/Program Files/Java/jdk1.8.0_71/src.zip!/java/util/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="15941">
+          <caret line="839" column="18" selection-start-line="839" selection-start-column="18" selection-end-line="839" selection-end-column="18" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://C:/Program Files/Java/jdk1.8.0_71/src.zip!/java/util/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="4066">
+          <caret line="237" column="12" selection-start-line="237" selection-start-column="12" selection-end-line="237" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="57">
+          <caret line="3" column="17" selection-start-line="3" selection-start-column="17" selection-end-line="3" selection-end-column="17" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/group07.md">
+      <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" />
+        </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" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/43819473/git命令.txt">
+      <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="10" selection-end-column="22" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/476770768/MyDataStructure/src/com/coding/basic/MyList.java">
+      <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" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/476770768/MyDataStructure/src/com/coding/basic/MyArrayList.java">
+      <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" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/476770768/MyDataStructure/src/com/coding/basic/MyIterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="114">
+          <caret line="6" column="0" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/764189149/src/firstHomeWork/util/Queue.java">
+      <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" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/764189149/src/firstHomeWork/util/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="133">
+          <caret line="7" column="3" selection-start-line="7" selection-start-column="3" selection-end-line="7" selection-end-column="3" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/764189149/src/firstHomeWork/util/List.java">
+      <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" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/Hello.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="160">
+          <caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/764189149/src/firstHomeWork/util/ArrayList.java">
+      <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" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://C:/Program Files/Java/jdk1.8.0_71/src.zip!/java/util/Collection.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="138">
+          <caret line="288" column="12" selection-start-line="288" selection-start-column="12" selection-end-line="288" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://C:/Program Files/Java/jdk1.8.0_71/src.zip!/java/util/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="4066">
+          <caret line="237" column="12" selection-start-line="237" selection-start-column="12" selection-end-line="237" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://C:/Program Files/Java/jdk1.8.0_71/src.zip!/java/lang/System.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1728">
+          <caret line="483" column="59" selection-start-line="483" selection-start-column="36" selection-end-line="483" selection-end-column="59" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://C:/Program Files/Java/jdk1.8.0_71/src.zip!/java/util/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="56">
+          <caret line="861" column="28" selection-start-line="861" selection-start-column="20" selection-end-line="861" selection-end-column="28" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://C:/Program Files/Java/jdk1.8.0_71/src.zip!/java/util/Vector.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-96">
+          <caret line="82" column="13" selection-start-line="82" selection-start-column="13" selection-end-line="82" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://C:/Program Files/Java/jdk1.8.0_71/src.zip!/java/util/Stack.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="132">
+          <caret line="48" column="27" selection-start-line="48" selection-start-column="27" selection-end-line="48" selection-end-column="27" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1197">
+          <caret line="63" column="12" selection-start-line="63" selection-start-column="12" selection-end-line="63" selection-end-column="12" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/test/xdx/homework/first/QueueTest.java" />
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/ArrayListTest.java" />
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/test/xdx/homework/first/ArrayListTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="199">
+          <caret line="45" column="0" selection-start-line="45" selection-start-column="0" selection-end-line="45" selection-end-column="0" />
+          <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="228">
+          <caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://$APPLICATION_HOME_DIR$/lib/junit-4.12.jar!/org/junit/runners/model/FrameworkMethod.class">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="113">
+          <caret line="31" column="0" selection-start-line="31" selection-start-column="0" selection-end-line="31" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://$APPLICATION_HOME_DIR$/lib/junit-4.12.jar!/org/junit/internal/runners/statements/RunBefores.class">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="264">
+          <caret line="24" column="0" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/test/xdx/homework/first/QueueTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="2508">
+          <caret line="136" column="70" selection-start-line="136" selection-start-column="70" selection-end-line="136" selection-end-column="70" />
+          <folding>
+            <element signature="imports" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/test/xdx/homework/first/StackTest.java" />
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/Stack.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1197">
+          <caret line="67" column="34" selection-start-line="67" selection-start-column="34" selection-end-line="67" selection-end-column="34" />
+          <folding>
+            <element signature="e#826#827#0" expanded="true" />
+            <element signature="e#858#859#0" expanded="true" />
+            <element signature="e#994#995#0" expanded="true" />
+            <element signature="e#1021#1022#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/test/xdx/homework/first/StackTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="2147">
+          <caret line="117" column="20" selection-start-line="117" selection-start-column="20" selection-end-line="117" selection-end-column="20" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/git命令.txt">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="190">
+          <caret line="10" column="21" selection-start-line="10" selection-start-column="21" selection-end-line="10" selection-end-column="21" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/Queue.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="285">
+          <caret line="39" column="17" selection-start-line="31" selection-start-column="7" selection-end-line="39" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/test/xdx/homework/first/LinkedListTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="202">
+          <caret line="14" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="155" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/test/xdx/homework/first/ArrayListTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-1665">
+          <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$/group07/20409287/src/main/java/xdx/homework/first/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="171">
+          <caret line="9" column="9" selection-start-line="9" selection-start-column="9" selection-end-line="9" selection-end-column="9" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/test/xdx/homework/first/LinkedListTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="729">
+          <caret line="213" column="0" selection-start-line="213" selection-start-column="0" selection-end-line="213" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/764189149/src/firstHomeWork/util/DoubleLinkedList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="377">
+          <caret line="320" column="9" selection-start-line="320" selection-start-column="9" selection-end-line="320" selection-end-column="9" />
+          <folding>
+            <element signature="e#6285#6286#0" expanded="false" />
+            <element signature="e#6305#6306#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/LinkedList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="57">
+          <caret line="3" column="21" selection-start-line="3" selection-start-column="21" selection-end-line="3" selection-end-column="21" />
+          <folding>
+            <element signature="e#2308#2309#0" expanded="true" />
+            <element signature="e#2335#2336#0" expanded="true" />
+            <element signature="e#2435#2436#0" expanded="true" />
+            <element signature="e#2467#2468#0" expanded="true" />
+            <element signature="e#4499#4500#0" expanded="true" />
+            <element signature="e#4531#4532#0" expanded="true" />
+            <element signature="e#4679#4680#0" expanded="true" />
+            <element signature="e#4725#4726#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/764189149/src/firstHomeWork/util/BinaryTreeNode.java">
+      <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$/group07/476770768/MyDataStructure/src/com/coding/basic/BinaryTreeNode.java">
+      <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$/group07/1058267830/week1/src/com/coding/basic/BinaryTree.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-342">
+          <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$/group07/20409287/src/main/java/xdx/homework/first/BinaryTree.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-152">
+          <caret line="7" column="20" selection-start-line="7" selection-start-column="20" selection-end-line="7" selection-end-column="20" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="129">
+          <caret line="188" column="17" selection-start-line="188" selection-start-column="17" selection-end-line="188" selection-end-column="17" />
+          <folding>
+            <element signature="e#3576#3577#0" expanded="true" />
+            <element signature="e#3631#3632#0" expanded="true" />
+            <element signature="e#3681#3682#0" expanded="true" />
+            <element signature="e#3736#3737#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/group07/20409287/src/main/java/xdx/homework/first/BinaryTreeNode.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-38">
+          <caret line="4" column="24" selection-start-line="4" selection-start-column="24" selection-end-line="4" selection-end-column="24" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+  </component>
+  <component name="masterDetails">
+    <states>
+      <state key="ArtifactsStructureConfigurable.UI">
+        <settings>
+          <artifact-editor />
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="FacetStructureConfigurable.UI">
+        <settings>
+          <last-edited>No facets are configured</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="GlobalLibrariesConfigurable.UI">
+        <settings>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="JdkListConfigurable.UI">
+        <settings>
+          <last-edited>1.8</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ModuleStructureConfigurable.UI">
+        <settings>
+          <last-edited>coding2017</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ProjectLibrariesConfigurable.UI">
+        <settings>
+          <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/group01/1664823950/.project b/group01/1664823950/.project
index 14ce66b1b..6cca5cf64 100644
--- a/group01/1664823950/.project
+++ b/group01/1664823950/.project
@@ -1,6 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
+<<<<<<< HEAD:group01/1664823950/.project
 	<name>1664823950</name>
+=======
+	<name>1264835468</name>
+>>>>>>> master:group17/1264835468/.project
 	<comment></comment>
 	<projects>
 	</projects>
diff --git "a/group07/1058267830/git\345\221\275\344\273\244.txt" "b/group07/1058267830/git\345\221\275\344\273\244.txt"
deleted file mode 100644
index 8bcf2ffa0..000000000
--- "a/group07/1058267830/git\345\221\275\344\273\244.txt"
+++ /dev/null
@@ -1,11 +0,0 @@
-��װgit gui��������git bash����
-1.��¡
-git clone git@github.com:leijing1992/coding2017.git
-2.�����޸ĵ��ļ�
-git add -A
-3.�ύ���ݴ���
-git commit -m "�ύ***����"
-4.����master
-git pull origin master
-5.�ύ��master
-git push origin master
\ No newline at end of file
diff --git a/group07/1058267830/week1/.classpath b/group07/1058267830/week1/.classpath
new file mode 100644
index 000000000..91c6d8f6c
--- /dev/null
+++ b/group07/1058267830/week1/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="test"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7.0_80"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/group07/1058267830/week1/.project b/group07/1058267830/week1/.project
new file mode 100644
index 000000000..d3e8bd8c5
--- /dev/null
+++ b/group07/1058267830/week1/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>week1</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/group07/1058267830/week1/.settings/org.eclipse.jdt.core.prefs b/group07/1058267830/week1/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..7341ab168
--- /dev/null
+++ b/group07/1058267830/week1/.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.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/group07/1058267830/week1/src/com/coding/basic/ArrayList.java b/group07/1058267830/week1/src/com/coding/basic/ArrayList.java
new file mode 100644
index 000000000..8d05511d8
--- /dev/null
+++ b/group07/1058267830/week1/src/com/coding/basic/ArrayList.java
@@ -0,0 +1,108 @@
+package com.coding.basic;
+
+public class ArrayList implements List, Iterator {
+	
+	private Object[] obj ;
+	private int length; // 数组总长度
+	private int size;  // 元素个数
+	private int currentIndex; // 当前索引位置，默认为-1
+
+	public int getLength() {
+		return length;
+	}
+
+	public ArrayList(){
+		this.obj = new Object[10];
+		this.length = 10;
+		this.size = 0;
+		this.currentIndex = -1;
+	}
+	
+	public ArrayList(int initSize){
+		this.obj = new Object[initSize];
+		this.length = initSize;
+		this.size = 0;
+		this.currentIndex = -1;
+	}
+	
+	@Override
+	public void add(Object o) {
+		if(this.size < length){
+			obj[size] = o;
+			this.size++;
+			
+		}else{
+			// 扩容,add数据
+			Object[] obj1 = new Object[length * 2];
+			System.arraycopy(obj, 0, obj1, 0, length);
+			this.length = this.length * 2;
+			this.obj = obj1;
+			obj[this.size] = o;
+			this.size++;
+		}
+	}
+
+	@Override
+	public void add(int index, Object o) {
+		if(index < length){
+			// 容量扩1，add数据
+			Object[] obj1 = new Object[length + 1];
+			System.arraycopy(obj, 0, obj1, 0, index);
+			System.arraycopy(obj, index, obj1, index+1, length-index);
+			obj1[index] = o;
+			this.obj = obj1;
+			this.length++;
+			this.size++;
+		}else{
+			// 容量扩到index+1, add数据
+			Object[] obj1 = new Object[index + 1];
+			System.arraycopy(obj, 0, obj1, 0, length);
+			obj1[index] = o;
+			this.obj = obj1;
+			this.length = index + 1;
+			this.size++;
+		}
+	}
+
+	@Override
+	public Object get(int index) {
+		if(index >= length)
+			throw new RuntimeException("数组越界了...");
+		return this.obj[index];
+	}
+
+	@Override
+	public Object remove(int index) {
+		if(index >= length)
+			throw new RuntimeException("数组越界了...");
+		Object tmp = obj[index];// 取值，最后返回
+		Object[] obj1 = new Object[length -1];
+		System.arraycopy(obj, 0, obj1, 0, index);
+		System.arraycopy(obj, index+1, obj1, index, length-index-1);
+		this.obj = obj1;
+		this.length--;
+		this.size--;
+		return tmp;
+	}
+
+	@Override
+	public int size() {
+		return this.size;
+	}
+
+	@Override
+	public boolean hasNext() {
+		if(currentIndex == length-1){
+			return false;
+		}else{
+			currentIndex++;
+			return true;
+		}
+	}
+
+	@Override
+	public Object next() {
+		return this.get(currentIndex);
+	}
+
+}
diff --git a/group07/1058267830/week1/src/com/coding/basic/BinaryTree.java b/group07/1058267830/week1/src/com/coding/basic/BinaryTree.java
new file mode 100644
index 000000000..e326a21f7
--- /dev/null
+++ b/group07/1058267830/week1/src/com/coding/basic/BinaryTree.java
@@ -0,0 +1,78 @@
+package com.coding.basic;
+
+public class BinaryTree {
+	private BinaryTreeNode root; // 根节点
+	public BinaryTree( ){
+		BinaryTreeNode node = new BinaryTreeNode();
+		this.root = node;
+	}
+	
+	public boolean isEmpty(){
+		return this.root == null;
+	}
+	
+	public void insert(Object o){
+		// 如果是第一次添加节点，就是root节点
+		if(root.data == null){
+			BinaryTreeNode bnode = new BinaryTreeNode(o, null, null);
+			root = bnode;
+		}else{
+			insert(o, root);
+		}
+	}
+
+	// 递归添加非root节点
+	private BinaryTreeNode insert(Object o, BinaryTreeNode node) {
+		if(node == null){
+			BinaryTreeNode bnode = new BinaryTreeNode(o, null, null);
+			return bnode;
+		}
+		if((int)o <= (int)node.data){
+			node.left = insert(o, node.left);
+		}else{
+			node.right = insert(o, node.right);
+		}
+		
+		return node;
+	}
+	
+	// 中序遍历
+	public void middlePrint(){
+		middleOrder(this.root);
+	}
+
+	private void middleOrder(BinaryTreeNode node) {
+		if(node != null){
+			middleOrder(node.left);
+			System.out.print(node.data + " ");
+			middleOrder(node.right);
+		}
+	}
+	
+	// 前序遍历
+	public void prePrint(){
+		preOrder(this.root);
+	}
+
+	private void preOrder(BinaryTreeNode node) {
+		if(node != null){
+			System.out.print(node.data + " ");
+			preOrder(node.left);
+			preOrder(node.right);
+		}
+	}
+	
+	// 后序遍历
+	public void postPrint(){
+		postOrder(this.root);
+	}
+
+	private void postOrder(BinaryTreeNode node) {
+		if(node != null){
+			postOrder(node.right);
+			System.out.print(node.data + " ");
+			postOrder(node.left);
+		}
+	}
+	
+}
diff --git a/group07/1058267830/week1/src/com/coding/basic/BinaryTreeNode.java b/group07/1058267830/week1/src/com/coding/basic/BinaryTreeNode.java
new file mode 100644
index 000000000..a9e659316
--- /dev/null
+++ b/group07/1058267830/week1/src/com/coding/basic/BinaryTreeNode.java
@@ -0,0 +1,16 @@
+package com.coding.basic;
+
+public class BinaryTreeNode {
+
+	protected Object data;
+	protected BinaryTreeNode left;
+	protected BinaryTreeNode right;
+	
+	public BinaryTreeNode(){}
+	public BinaryTreeNode(Object data, BinaryTreeNode left, BinaryTreeNode right){
+		this.data = data;
+		this.left = left;
+		this.right = right;
+	}
+	
+}
diff --git a/group07/1058267830/week1/src/com/coding/basic/Iterator.java b/group07/1058267830/week1/src/com/coding/basic/Iterator.java
new file mode 100644
index 000000000..d369bbc50
--- /dev/null
+++ b/group07/1058267830/week1/src/com/coding/basic/Iterator.java
@@ -0,0 +1,8 @@
+package com.coding.basic;
+
+public interface Iterator {
+
+	public boolean hasNext();
+	
+	public Object next();
+}
diff --git a/group07/1058267830/week1/src/com/coding/basic/LinkedList.java b/group07/1058267830/week1/src/com/coding/basic/LinkedList.java
new file mode 100644
index 000000000..df65b1360
--- /dev/null
+++ b/group07/1058267830/week1/src/com/coding/basic/LinkedList.java
@@ -0,0 +1,97 @@
+package com.coding.basic;
+
+public class LinkedList implements List, Iterator{
+	private Node head;
+	private Node tail;
+	private Node currentNode;
+	private int size;
+	
+	public LinkedList(){
+		this.head = new Node(null); 
+		this.tail = head;
+		this.currentNode = head;
+		this.size = 0;
+	}
+
+	@Override
+	public void add(Object o) {
+		Node node = new Node(o, null);
+		tail.setNext(node);
+		tail = node;
+		size++;
+	}
+
+	@Override
+	public void add(int index, Object o) {
+		if(index < 0 || index > size+1){
+			throw new RuntimeException("插入的位置错误...");
+		}
+		Node pre = head; // 得到待插入位置的前一个节点
+		for(int i=0; i<index; i++){
+			pre = pre.getNext();
+		}
+		Node behind = pre.getNext(); // 得到待插入位置的节点
+		Node node = new Node(o, behind); // 构造当前节点并使当前节点的next指向behind
+		pre.setNext(node);
+		size++;
+	}
+
+	@Override
+	public Object get(int index) {
+		if(index < 0 || index >= size){
+			throw new RuntimeException("index参数错误...");
+		}
+		Node node = head; // 得到待插入位置的前一个节点
+		for(int i=0; i<=index; i++){
+			node = node.getNext();
+		}
+		return node;
+	}
+
+	@Override
+	public Object remove(int index) {
+		if(index < 0 || index >= size){
+			throw new RuntimeException("index参数错误...");
+		}
+		Node pre = head; // 得到待删除位置的前一个节点
+		for(int i=0; i<index; i++){
+			pre = pre.getNext();
+		}
+		Node node = pre.getNext(); // 得到待删除位置的节点并返回
+		Node behind = node.getNext(); // 得到待删除位置的后一个节点
+		pre.setNext(behind);
+		size--;
+		return node;
+	}
+
+	@Override
+	public int size() {
+		return size;
+	}
+	
+	// 按顺序打印节点值
+	public void printData(){
+		Node node = head.getNext();
+		while(node != null){
+			System.out.println(node.getData());
+			node = node.getNext();
+		}
+	}
+
+	@Override
+	public boolean hasNext() {
+		if(currentNode == tail){
+			return false;
+		}else{
+			currentNode = currentNode.getNext();
+			return true;
+		}
+		
+	}
+
+	@Override
+	public Object next() {
+		return currentNode;
+	}
+
+}
diff --git a/group07/1058267830/week1/src/com/coding/basic/List.java b/group07/1058267830/week1/src/com/coding/basic/List.java
new file mode 100644
index 000000000..784bd4ad5
--- /dev/null
+++ b/group07/1058267830/week1/src/com/coding/basic/List.java
@@ -0,0 +1,14 @@
+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/group07/1058267830/week1/src/com/coding/basic/Node.java b/group07/1058267830/week1/src/com/coding/basic/Node.java
new file mode 100644
index 000000000..ba4ef67eb
--- /dev/null
+++ b/group07/1058267830/week1/src/com/coding/basic/Node.java
@@ -0,0 +1,39 @@
+package com.coding.basic;
+
+public class Node {
+	private Object data;
+	private Node next;
+	
+	// 头结点构造方法
+	public Node(Node head){
+		this.next= head;
+	}
+	
+	// 非头结点构造方法
+	public Node(Object data, Node node){
+		this.data = data;
+		this.next = node;
+	}
+
+	// 获得当前节点的值
+	public Object getData() {
+		return data;
+	}
+
+	// 设置当前节点的值
+	public void setData(Object data) {
+		this.data = data;
+	}
+
+	// 获得下一个节点
+	public Node getNext() {
+		return next;
+	}
+
+	// 设置下一个节点
+	public void setNext(Node next) {
+		this.next = next;
+	}
+	
+	
+}
diff --git a/group07/1058267830/week1/src/com/coding/basic/Queue.java b/group07/1058267830/week1/src/com/coding/basic/Queue.java
new file mode 100644
index 000000000..21f20641d
--- /dev/null
+++ b/group07/1058267830/week1/src/com/coding/basic/Queue.java
@@ -0,0 +1,25 @@
+package com.coding.basic;
+
+public class Queue {
+	private LinkedList list;
+	public Queue(){
+		list = new LinkedList();
+	}
+	/* 向队列中插入数据 */
+	public void enQueue(Object o){
+		list.add(o);
+	}
+	 
+	/* 从队列中删除数据 */
+	public Object deQueue() {
+		return list.remove(0);
+	}
+	
+	public boolean isEmpty(){
+		return list.size() == 0;
+	}
+	
+	public int size(){
+		return list.size();
+	}
+}
diff --git a/group07/1058267830/week1/src/com/coding/basic/Stack.java b/group07/1058267830/week1/src/com/coding/basic/Stack.java
new file mode 100644
index 000000000..e8038441b
--- /dev/null
+++ b/group07/1058267830/week1/src/com/coding/basic/Stack.java
@@ -0,0 +1,29 @@
+package com.coding.basic;
+
+public class Stack {
+
+	private ArrayList list;
+	public Stack(){
+		list = new ArrayList(1);
+	}
+	
+	public void push(Object o){
+		list.add(o);
+	}
+	
+	public Object pop(){
+		return list.remove(0);
+	}
+	
+	public Object peek(){
+		return list.get(0);
+	}
+	
+	public boolean isEmpty(){
+		return list.size() == 0;
+	}
+	
+	public int size(){
+		return list.size();
+	}
+}
diff --git a/group07/1058267830/week1/test/com/coding/test/TestArrayList.java b/group07/1058267830/week1/test/com/coding/test/TestArrayList.java
new file mode 100644
index 000000000..f3d389fab
--- /dev/null
+++ b/group07/1058267830/week1/test/com/coding/test/TestArrayList.java
@@ -0,0 +1,47 @@
+package com.coding.test;
+
+import org.junit.Test;
+
+import com.coding.basic.ArrayList;
+
+public class TestArrayList {
+
+	@Test
+	public void test() {
+		ArrayList list = new ArrayList(1);
+		System.out.println(list.getLength());
+		System.out.println(list.size());
+		System.out.println("-------------");
+		list.add("a");
+		list.add("b");
+		list.add("c");
+		list.add("d");
+		System.out.println(list.size());
+		System.out.println(list.getLength());
+		System.out.println("---------------");
+		
+//		list.add(7, "b");
+//		System.out.println(list.size());
+//		System.out.println(list.getLength());
+		
+//		System.out.println("------------");
+//		
+//		System.out.println(list.get(0));
+//		System.out.println(list.get(1));
+//		System.out.println("-----------------");
+//		
+//		list.remove(1);
+//		System.out.println(list.get(0));
+//		System.out.println(list.get(1));
+//		System.out.println(list.get(2));
+//		System.out.println(list.size());
+//		System.out.println(list.getLength());
+		while(list.hasNext()){
+			System.out.println(list.next());
+		}
+		
+		
+		
+	}
+
+}
diff --git a/group07/1058267830/week1/test/com/coding/test/TestBinaryTree.java b/group07/1058267830/week1/test/com/coding/test/TestBinaryTree.java
new file mode 100644
index 000000000..b5aa9f267
--- /dev/null
+++ b/group07/1058267830/week1/test/com/coding/test/TestBinaryTree.java
@@ -0,0 +1,29 @@
+package com.coding.test;
+
+import org.junit.Test;
+
+import com.coding.basic.BinaryTree;
+
+public class TestBinaryTree {
+
+	@Test
+	public void test() {
+		BinaryTree bt = new BinaryTree();
+		bt.insert(10);
+		bt.insert(5);
+		bt.insert(6);
+		bt.insert(20);
+		bt.insert(15);
+		bt.insert(8);
+		bt.middlePrint();
+		System.out.println();
+		
+		System.out.println("----------------");
+		bt.prePrint();
+		
+		System.out.println();
+		System.out.println("-----------------");
+		bt.postPrint();
+	}
+
+}
diff --git a/group07/1058267830/week1/test/com/coding/test/TestLinkedList.java b/group07/1058267830/week1/test/com/coding/test/TestLinkedList.java
new file mode 100644
index 000000000..9f179d5b6
--- /dev/null
+++ b/group07/1058267830/week1/test/com/coding/test/TestLinkedList.java
@@ -0,0 +1,40 @@
+package com.coding.test;
+
+import org.junit.Test;
+
+import com.coding.basic.LinkedList;
+import com.coding.basic.Node;
+
+public class TestLinkedList {
+
+	@Test
+	public void test() {
+		LinkedList list = new LinkedList();
+		System.out.println(list.size());
+		System.out.println("-------------");
+		list.add("a");
+		list.add("b");
+		list.add("c");
+		list.add("d");
+		list.add(2, "x");
+//		
+//		System.out.println(list.size());
+//		list.printData();
+//		System.out.println("------------");
+//		
+//		Node node = (Node)list.get(3);
+//		System.out.println(node.getData());
+//		System.out.println("----------------");
+//		
+//		Node node1 = (Node)list.remove(3);
+//		System.out.println(list.size());
+//		list.printData();
+		
+		System.out.println("---------------");
+		while(list.hasNext()){
+			Node node2 = (Node)list.next();
+			System.out.println(node2.getData());
+		}
+	}
+
+}
diff --git a/group07/1058267830/week1/test/com/coding/test/TestQueue.java b/group07/1058267830/week1/test/com/coding/test/TestQueue.java
new file mode 100644
index 000000000..929b90bf6
--- /dev/null
+++ b/group07/1058267830/week1/test/com/coding/test/TestQueue.java
@@ -0,0 +1,26 @@
+package com.coding.test;
+
+import org.junit.Test;
+
+import com.coding.basic.Node;
+import com.coding.basic.Queue;
+
+public class TestQueue {
+
+	@Test
+	public void test() {
+		Queue queue = new Queue();
+		queue.enQueue("a");
+		queue.enQueue("b");
+		queue.enQueue("c");
+		System.out.println(queue.size());
+		System.out.println("--------------");
+		Node node = (Node)queue.deQueue();
+		System.out.println(node.getData());
+		Node node1 = (Node)queue.deQueue();
+		System.out.println(node1.getData());
+		System.out.println(queue.isEmpty());
+		System.out.println(queue.size());
+	}
+
+}
diff --git a/group07/1058267830/week1/test/com/coding/test/TestStack.java b/group07/1058267830/week1/test/com/coding/test/TestStack.java
new file mode 100644
index 000000000..e8f1ec547
--- /dev/null
+++ b/group07/1058267830/week1/test/com/coding/test/TestStack.java
@@ -0,0 +1,31 @@
+package com.coding.test;
+
+import org.junit.Test;
+
+import com.coding.basic.Stack;
+
+public class TestStack {
+
+	@Test
+	public void test() {
+		Stack stack = new Stack();
+		stack.push("a");
+		stack.push("b");
+		stack.push("c");
+		stack.push("d");
+		System.out.println(stack.peek());
+		System.out.println(stack.size());
+		System.out.println("-------------");
+		
+		stack.pop();
+		System.out.println(stack.peek());
+		System.out.println(stack.size());
+		System.out.println("-------------");
+		
+		stack.pop();
+		System.out.println(stack.peek());
+		System.out.println(stack.size());
+		System.out.println("-------------");
+	}
+
+}
diff --git a/group07/1280157271/20170224-01-ArrayList/.classpath b/group07/1280157271/20170224-01-ArrayList/.classpath
new file mode 100644
index 000000000..fceb4801b
--- /dev/null
+++ b/group07/1280157271/20170224-01-ArrayList/.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/group07/1280157271/20170224-01-ArrayList/.gitignore b/group07/1280157271/20170224-01-ArrayList/.gitignore
new file mode 100644
index 000000000..ae3c17260
--- /dev/null
+++ b/group07/1280157271/20170224-01-ArrayList/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/group07/1280157271/20170224-01-ArrayList/.project b/group07/1280157271/20170224-01-ArrayList/.project
new file mode 100644
index 000000000..4c0107dd1
--- /dev/null
+++ b/group07/1280157271/20170224-01-ArrayList/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>20170224-01-ArrayList</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/group07/1280157271/20170224-01-ArrayList/.settings/org.eclipse.jdt.core.prefs b/group07/1280157271/20170224-01-ArrayList/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..3a2153707
--- /dev/null
+++ b/group07/1280157271/20170224-01-ArrayList/.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/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/List.java b/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/List.java
new file mode 100644
index 000000000..6eb3636be
--- /dev/null
+++ b/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/List.java
@@ -0,0 +1,9 @@
+package firstHomework.fan;
+
+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/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myArrayList.java b/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myArrayList.java
new file mode 100644
index 000000000..bd39bfca4
--- /dev/null
+++ b/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myArrayList.java
@@ -0,0 +1,60 @@
+package firstHomework.fan;
+
+public class myArrayList implements List {
+	
+	private int size = 0;
+	private int initLength=10;
+	private Object[] elementData = new Object[initLength];
+	
+	public void add(Object o){
+		ensureCapacity(size+1);
+		elementData[size++] = o;
+	}
+	
+	public void add(int index, Object o){
+		ensureCapacity(size+1);
+		if(index<0||index>size){
+			System.out.println("indexӦ����0-size֮�䣡����");
+		}else{
+			System.arraycopy(elementData, index, elementData, index+1, size-index);
+			elementData[index] = o;
+			size++;
+		}
+	}
+	
+	public Object get(int index){
+		if(index<0||index>size){
+			System.out.println("indexӦ����0-size֮�䣡����");
+		}else{
+			return elementData[index];
+		}
+		return null;
+	}
+	
+	public Object remove(int index){
+		if(index<0||index>size){
+			System.out.println("indexӦ����0-size֮�䣡����");
+			return null;
+		}
+		Object obj = get(index);
+		System.arraycopy(elementData, index+1, elementData, index, size-index-1);
+		size--;
+		return obj;
+	}
+	
+	public int size(){
+		return this.size;
+	}
+	
+
+	
+	public void ensureCapacity(int x){
+		int oldCapacity = elementData.length;
+		if(x>oldCapacity){
+			Object newEle[] = new Object[oldCapacity+initLength];
+			System.arraycopy(elementData, 0, newEle, 0, size);
+			elementData = newEle;
+		}
+	}
+	
+}
diff --git a/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myBinaryTreeNode.java b/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myBinaryTreeNode.java
new file mode 100644
index 000000000..f523215a8
--- /dev/null
+++ b/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myBinaryTreeNode.java
@@ -0,0 +1,68 @@
+package firstHomework.fan;
+import java.util.Comparator; 
+
+public class myBinaryTreeNode {
+	
+	private int data;
+	private myBinaryTreeNode left;
+	private myBinaryTreeNode right;
+	
+	//���캯��
+	public myBinaryTreeNode(){
+	}
+	public myBinaryTreeNode(int value){
+		this.data = value;
+		this.left = null;
+		this.right = null;
+	}
+	public myBinaryTreeNode(int value,myBinaryTreeNode left,myBinaryTreeNode right){
+		this.data = value;
+		this.left = left;
+		this.right = right;
+	}
+	private myBinaryTreeNode root;//������ڵ�
+ 
+	//get/set����
+	public Object getData() {
+		return data;
+	}
+	public void setData(int data) {
+		this.data = data;
+	}
+	
+	
+	public myBinaryTreeNode getLeft() {
+		return left;
+	}
+	public void setLeft(myBinaryTreeNode left) {
+		this.left = left;
+	}
+	
+	
+	public myBinaryTreeNode getRight() {
+		return right;
+	}
+	public void setRight(myBinaryTreeNode right) {
+		this.right = right;
+	}
+	
+	
+	public void insert(int o){
+		this.root = insert(o,this.root);
+		 
+	}
+	public myBinaryTreeNode insert(int value,myBinaryTreeNode t){
+		if(t == null){//���ڵ�Ϊ��
+			return new myBinaryTreeNode(value);
+		}
+		//����ֵ�뵱ǰ�ڵ�Ƚϣ�С�ڲ��뵽�����������ڲ��뵽������
+		if(value<t.data){
+			t.left = insert(value,t.left);//t�ڵ������Ľڵ㣬����leftһ��Ϊ�գ���ʱ�ݹ鿪ʼ����
+			
+		}else if(value>t.data){
+			t.right = insert(value,t.right);
+		}
+		return  t;
+	}
+	
+}
\ No newline at end of file
diff --git a/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myLinkedList.java b/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myLinkedList.java
new file mode 100644
index 000000000..da481e023
--- /dev/null
+++ b/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myLinkedList.java
@@ -0,0 +1,129 @@
+package firstHomework.fan;
+
+ 
+
+public class myLinkedList implements List {
+	private static  class Node{//�����Ľڵ�ṹ��
+		Object data;//������
+		Node next;	//Node���ã��൱��ָ�룬ָ����һ���ڵ�
+	
+		 Node(Object e,  Node next) {
+	            this.data = e;
+	            this.next = next;
+	        }
+	}
+	
+	private Node head,last=null;//�ֱ�ָ���һ�������һ���ڵ�
+	private int size;
+	
+	 
+	public void add(Object o){//��β�����ӣ����൱������β�ڵ�
+		creatLastNode(o);
+	}
+	public void add(int index , Object o){//��indexǰ�����
+		if(index == 0){//˵����������λ��Ϊ0����ô������ͷ���
+			createFirstNode(o);
+		}else{//��ȥ�ҵ�ָ��λ��
+			Node indexBeforeNode = getNode(index-1);//���ﷵ�ص���index��ǰһ���ڵ�
+			Node newIndex =new Node(o,indexBeforeNode.next) ;//x�½ڵ㱣��indexBefore��ָ��
+			indexBeforeNode.next = newIndex;
+			size++;
+		}
+	}
+	public Object get(int index){
+		return getNode(index).data;//���ص��ǽڵ��е����ݶ���
+	}
+	
+	public Object remove(int index){
+		if(index==0){//�Ƴ�ͷ���
+			removeFirst();
+		}else{//�ҵ�ָ���ڵ��ǰһ���ڵ�
+			Node removeNode = getNode(index-1);
+			removeNode.next = removeNode.next.next;//�Ƴ���index
+			size--;
+			return removeNode.next.data;//�����Ƴ��ڵ�����ݶ���
+		}
+		return null;
+	}
+	
+	public int size(){
+		return this.size;
+	}
+	
+	public void addFirst(Object o){
+		createFirstNode(o);
+	}
+	public void addLast(Object o){
+		creatLastNode(o);
+	}
+	public Object removeFirst(){
+		if(size>0){//�б���Ϊ�գ���һ����ͷ
+			Node removeHead = head;
+			head = head.next;
+			size--;
+			return removeHead.data;//����ͷ�������ݶ���
+		}else{
+			System.out.println("����Ϊ�գ�");
+		}
+		return null;
+	}
+	public Object removeLast(){
+		if(size>0){
+			Node removeLastBefore = getNode(size-2);//�ҵ�last�ڵ����һ���ڵ�
+			Object returnObj = removeLastBefore.next.data; 
+			removeLastBefore.next = null;
+			last = removeLastBefore;
+			size--;
+			return returnObj;
+		}else{
+			System.out.println("����Ϊ�գ�");
+		}
+		return null;
+	}
+ 
+	/*
+	 * ����ͷ���
+	 * */
+	private void createFirstNode(Object e){
+		Node oldHead = head;
+		Node newHead = new Node(e,oldHead);//�������Ľڵ���Ϊhead�ڵ��ǰһ�ڵ� 
+		head = newHead;//���ܿղ��գ�headҪָ���µ�ͷ�ڵ�
+		if(head == null){//�������Ϊ�գ�head��last��ָ���½ڵ㣨��Ϊ��last�Ͳ����Ҹ�ֵ����Ϊ��ȷ������������ģ�
+			last = newHead;
+		}else{//ͷ����Ѿ�����,�½ڵ���Ϊͷ��㣬ԭhead��ڶ���last����ָ������last
+			newHead.next = head;
+		}
+		size++;
+	}
+	/*
+	 * ����β���
+	 * */
+	private void creatLastNode(Object e){
+		Node oldLast = last;
+		Node newLast = new Node(e,null);//�µ�β�ڵ���һ���ڵ�Ϊ��
+		last = newLast;//���ܿղ��գ�last��Ҫָ���µ�β�ڵ�
+		if(head == null){//����Ϊ��
+			head = newLast;
+		}else{
+			oldLast.next = newLast;		
+		}
+		size++;
+	}
+	/*
+	 * Ѱ��ָ�����
+	 * */
+	private Node getNode(int index){
+		if(index<0||index>=size){
+			System.out.println("indexԽ�磡����");
+		}else{
+			Node node=head;
+			while(index != 0){
+				node = node.next;
+				index--;
+			}
+			return node;
+		}
+		return null;
+	}
+
+}
diff --git a/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myQueue.java b/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myQueue.java
new file mode 100644
index 000000000..041da7e29
--- /dev/null
+++ b/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myQueue.java
@@ -0,0 +1,51 @@
+package firstHomework.fan;
+
+public class myQueue {
+	private int iniLength = 10;
+	private Object[] array = new Object[iniLength];
+	private int size = 0;
+	
+	public void enQueue(Object o){	
+		if(size>=array.length){//��Ҫ����
+			Object[] newArray = new Object[iniLength+array.length];//array����ԭ���ټ���10
+			System.arraycopy(array, 0, newArray, 0, size);
+			array = newArray;
+		}
+		array[size++] = o;
+	}
+	
+	public Object deQueue(){//�Ƴ���һ��Ԫ�أ������Ԫ��������ǰλ��
+		Object deQueue = array[0];
+		System.arraycopy(array, 1, array, 0, size-1);
+		size--;
+		return deQueue;
+		
+	}
+	
+	public boolean isEmpty(){
+		return size==0;
+	}
+	
+	public int size(){
+		return this.size;
+	}
+	public static void main(String[] args) {  
+        myQueue queue = new myQueue();  
+        queue.enQueue("A");  
+        queue.enQueue("B");  
+        queue.enQueue("C");  
+          
+        queue.enQueue("D");  
+        queue.enQueue("E");  
+        queue.enQueue("F");  
+        queue.enQueue("G");  
+     
+       while(!queue.isEmpty()){  
+          System.out.println(queue.deQueue());//����  
+       }  
+          
+    }  
+	
+	
+	
+}
diff --git a/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myStack.java b/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myStack.java
new file mode 100644
index 000000000..623bbe787
--- /dev/null
+++ b/group07/1280157271/20170224-01-ArrayList/src/firstHomework/fan/myStack.java
@@ -0,0 +1,31 @@
+package firstHomework.fan;
+
+ 
+
+public class myStack {
+	private myArrayList array = new myArrayList();//myArrayList�������и���̬����
+
+	public void push(Object o){	//��ջ
+		 //���Ȳ���ʱmyArrayList���Լ�����
+		array.add(o);//�¶�������������
+	}
+	
+	public Object pop(){//��ջ��������β�ϵ�Ԫ�أ� ��Ҫɾ����
+		Object pop = array.get(array.size()-1);//�±�Ҫ��sizeС1
+		array.remove(array.size()-1);
+		return pop;
+	}
+	
+	public Object peek(){//ֻ�ǵ���ջ����ֵ����ɾ��
+		return array.get(array.size()-1);
+	}
+	public boolean isEmpty(){
+		return array.size()==0;
+	}
+	public int size(){
+		return array.size();
+	}
+
+	
+}
+
diff --git "a/group07/1280157271/\347\254\254\344\270\200\346\254\241\345\215\232\345\256\242\345\234\260\345\235\200--CPU \345\206\205\345\255\230 \347\241\254\347\233\230\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273 .txt" "b/group07/1280157271/\347\254\254\344\270\200\346\254\241\345\215\232\345\256\242\345\234\260\345\235\200--CPU \345\206\205\345\255\230 \347\241\254\347\233\230\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273 .txt"
new file mode 100644
index 000000000..1e19f6add
--- /dev/null
+++ "b/group07/1280157271/\347\254\254\344\270\200\346\254\241\345\215\232\345\256\242\345\234\260\345\235\200--CPU \345\206\205\345\255\230 \347\241\254\347\233\230\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273 .txt"	
@@ -0,0 +1 @@
+http://blog.csdn.net/stromcloud/article/details/56678442
\ No newline at end of file
diff --git a/group07/1448276993/JavaStudy/.classpath b/group07/1448276993/JavaStudy/.classpath
new file mode 100644
index 000000000..fceb4801b
--- /dev/null
+++ b/group07/1448276993/JavaStudy/.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/group07/1448276993/JavaStudy/.gitignore b/group07/1448276993/JavaStudy/.gitignore
new file mode 100644
index 000000000..ae3c17260
--- /dev/null
+++ b/group07/1448276993/JavaStudy/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/group07/1448276993/JavaStudy/.project b/group07/1448276993/JavaStudy/.project
new file mode 100644
index 000000000..cab7f7f24
--- /dev/null
+++ b/group07/1448276993/JavaStudy/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>JavaStudy</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/group07/1448276993/JavaStudy/.settings/org.eclipse.jdt.core.prefs b/group07/1448276993/JavaStudy/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..3a2153707
--- /dev/null
+++ b/group07/1448276993/JavaStudy/.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/group07/1448276993/JavaStudy/src/java1/ArrayList.java b/group07/1448276993/JavaStudy/src/java1/ArrayList.java
new file mode 100644
index 000000000..8623c3ae7
--- /dev/null
+++ b/group07/1448276993/JavaStudy/src/java1/ArrayList.java
@@ -0,0 +1,57 @@
+package java1;
+
+public class ArrayList implements List {
+	
+	private int size = 0;
+	
+	private Object[] elementData = new Object[100];
+	
+	public void add(Object o){
+		ensureCapacity(size+1);
+		elementData[size++]=o;
+		
+	}
+	public void add(int index, Object o){
+		ensureCapacity(size+1);
+		if(index<0&&index>size){
+			System.out.println("Wrong Input��");
+		}else{
+			System.arraycopy(elementData, index, elementData, index+1, size-index);
+			elementData[index]=o;
+			size++;
+		}	
+		
+	}
+	
+	public Object get(int index){
+		if(index<0&&index>size){
+			System.out.println("Wrong Input��");
+			return null;
+		}
+		return elementData[index];
+	}
+	
+	public Object remove(int index){
+		if(index<0&&index>size){
+			System.out.println("Wrong Input��");
+			return null;
+		}
+		Object a=elementData[index];
+		System.arraycopy(elementData, index+1, elementData, index, size-index-1);
+		return a;
+	}
+	
+	public int size(){
+		return this.size;
+	}
+	
+	public void ensureCapacity(int size){
+		int oldCapacity=elementData.length;
+		if(size>oldCapacity){
+			Object[] newelementData=new Object[size+oldCapacity];
+			elementData=newelementData;
+		}
+	}
+	
+}
+
diff --git a/group07/1448276993/JavaStudy/src/java1/LinkedList.java b/group07/1448276993/JavaStudy/src/java1/LinkedList.java
new file mode 100644
index 000000000..45df3db8b
--- /dev/null
+++ b/group07/1448276993/JavaStudy/src/java1/LinkedList.java
@@ -0,0 +1,129 @@
+package java1;
+
+public class LinkedList implements List {
+	
+	private Node head=null;
+	private Node last=null;
+	private int size=0;
+	
+	public void add(Object o){
+		Node newNode = new Node(o,null);
+		if(head==null){
+			head = newNode;
+			last = newNode;
+		}else{
+			addLast(o);
+        }
+        size++;
+	}
+	public void add(int index , Object o){
+		if(index<0&&index>size+1){
+			System.out.println("Wrong Input!");
+		}
+		Node newNode = new Node(o,null);
+		if(index==0){
+			addFirst(o);
+		}else if(index==size){
+			addLast(o);
+		}else{
+			Node a=head;
+			for(int i=0;i<index;i++){
+				a=a.next;
+				if(i==size-1){
+					newNode.next=a.next;
+					a.next=newNode;
+				}
+			}
+		}
+		size++;
+	}
+	public Object get(int index){
+		if(head==null){
+			return head;
+		}
+		Node a=head;
+		for(int i=0;i<index;i++){
+			a=a.next;
+			if(i==index){
+				break;
+			}
+		}
+		return a;
+	}
+	public Object remove(int index){
+		if(head==null){
+			return head;
+		}
+		Node a=head;
+		for(int i=0;i<index;i++){
+			a=a.next;
+			if(i==index-1){
+				a.next=a.next.next;
+				a.next.next=null;
+			}
+		}
+		return a;
+	}
+	
+	public int size(){
+		return this.size;
+	}
+	
+	public void addFirst(Object o){
+		Node newNode = new Node(o,null);
+		if(head==null){
+			head=newNode;
+			last=newNode;
+		}else{
+			newNode.next=head;
+			head=newNode;
+		}
+		size++;
+	}
+	public void addLast(Object o){
+		Node newNode = new Node(o,null);
+		if(head==null){
+			head=newNode;
+		}else{
+			last.next=newNode;
+		}
+		last=newNode;
+		size++;
+	}
+	public Object removeFirst(){
+		if(head==null){
+			System.out.println("List Is Empty!");
+		}else{
+			head=head.next;
+		}
+		size--;
+		return head;
+	}
+	public Object removeLast(){
+		if(head==null){
+			System.out.println("List Is Empty!");
+		}else{
+			Node a=head;
+			for(int i=0;i<size;i++){
+				a=a.next;
+				if(i==size-1){
+					last=a;
+					a.next=null;
+				}
+			}
+		}
+		size--;
+		return head;
+	}
+	
+	
+	private static  class Node{
+		Object data;
+		Node next;
+		
+		public Node(Object e,Node node){
+			this.data = e;
+			this.next = node;
+		}
+	}
+}
diff --git a/group07/1448276993/JavaStudy/src/java1/List.java b/group07/1448276993/JavaStudy/src/java1/List.java
new file mode 100644
index 000000000..2ee3e8066
--- /dev/null
+++ b/group07/1448276993/JavaStudy/src/java1/List.java
@@ -0,0 +1,9 @@
+package java1;
+
+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();
+}
\ No newline at end of file
diff --git a/group07/1448276993/JavaStudy/src/java1/Queue.java b/group07/1448276993/JavaStudy/src/java1/Queue.java
new file mode 100644
index 000000000..67247f4e5
--- /dev/null
+++ b/group07/1448276993/JavaStudy/src/java1/Queue.java
@@ -0,0 +1,38 @@
+package java1;
+
+public class Queue {
+	private Object[] str=new Object[100];
+	private int size=0;
+	public void enQueue(Object o){	
+		ensureCapacity(size+1);
+		str[size++]=o;
+	}
+	
+	public Object deQueue(){
+		if(this.size==0){
+			System.out.println("Is empty!");
+			return null;
+		}
+		System.arraycopy(str, 1, str, 0, size-1);
+		size--;
+		return str;
+	}
+	
+	public boolean isEmpty(){
+		if(size==0){
+			return true;
+		}
+		return false;
+	}
+	
+	public int size(){
+		return this.size;
+	}
+	public void ensureCapacity(int size){
+		int oldCapacity=str.length;
+		if(size>oldCapacity){
+			Object[] newelementData=new Object[size+oldCapacity];
+			str=newelementData;
+		}
+	}
+}
diff --git a/group07/1448276993/JavaStudy/src/java1/Stack.java b/group07/1448276993/JavaStudy/src/java1/Stack.java
new file mode 100644
index 000000000..9b785e48d
--- /dev/null
+++ b/group07/1448276993/JavaStudy/src/java1/Stack.java
@@ -0,0 +1,34 @@
+package java1;
+
+public class Stack {
+	private ArrayList array = new ArrayList();
+	
+	public void push(Object o){	
+		array.add(o);
+	}
+	
+	public Object pop(){
+		if(array.size()>0){
+			Object pop = array.get(array.size()-1);
+			array.remove(array.size()-1);
+			return pop;
+		}
+		return null;
+	}
+	
+	public Object peek(){
+		if(array.size()>0){
+			return array.get(array.size()-1);
+		}
+		return null;
+	}
+	public boolean isEmpty(){
+		if(array.size()==0){
+			return true;
+		}
+		return false;
+	}
+	public int size(){
+		return array.size();
+	}
+}
diff --git a/group07/1519504320/.classpath b/group07/1519504320/.classpath
new file mode 100644
index 000000000..fb5011632
--- /dev/null
+++ b/group07/1519504320/.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/group07/1519504320/.gitignore b/group07/1519504320/.gitignore
new file mode 100644
index 000000000..ae3c17260
--- /dev/null
+++ b/group07/1519504320/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/group07/1519504320/.idea/.name b/group07/1519504320/.idea/.name
new file mode 100644
index 000000000..5ad528003
--- /dev/null
+++ b/group07/1519504320/.idea/.name
@@ -0,0 +1 @@
+1519504320Learning
\ No newline at end of file
diff --git a/group07/1519504320/.idea/compiler.xml b/group07/1519504320/.idea/compiler.xml
new file mode 100644
index 000000000..96cc43efa
--- /dev/null
+++ b/group07/1519504320/.idea/compiler.xml
@@ -0,0 +1,22 @@
+<?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>
+    </annotationProcessing>
+  </component>
+</project>
\ No newline at end of file
diff --git a/group07/1519504320/.idea/copyright/profiles_settings.xml b/group07/1519504320/.idea/copyright/profiles_settings.xml
new file mode 100644
index 000000000..e7bedf337
--- /dev/null
+++ b/group07/1519504320/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+<component name="CopyrightManager">
+  <settings default="" />
+</component>
\ No newline at end of file
diff --git a/group07/1519504320/.idea/misc.xml b/group07/1519504320/.idea/misc.xml
new file mode 100644
index 000000000..6a48f3337
--- /dev/null
+++ b/group07/1519504320/.idea/misc.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="EntryPointsManager">
+    <entry_points version="2.0" />
+  </component>
+  <component name="MavenImportPreferences">
+    <option name="generalSettings">
+      <MavenGeneralSettings>
+        <option name="mavenHome" value="Bundled (Maven 3)" />
+      </MavenGeneralSettings>
+    </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">
+    <output url="file://$PROJECT_DIR$/classes" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/group07/1519504320/.idea/modules.xml b/group07/1519504320/.idea/modules.xml
new file mode 100644
index 000000000..c8fa84b43
--- /dev/null
+++ b/group07/1519504320/.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$/1519504320Learning.iml" filepath="$PROJECT_DIR$/1519504320Learning.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/group07/1519504320/.idea/workspace.xml b/group07/1519504320/.idea/workspace.xml
new file mode 100644
index 000000000..7dbdbd830
--- /dev/null
+++ b/group07/1519504320/.idea/workspace.xml
@@ -0,0 +1,746 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ChangeListManager">
+    <list default="true" id="91aa7283-14b3-44a2-8615-a52ced4174e3" name="Default" comment="" />
+    <ignored path="1519504320Learning.iws" />
+    <ignored path=".idea/workspace.xml" />
+    <ignored path="$PROJECT_DIR$/bin/" />
+    <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="ChangesViewManager" flattened_view="true" show_ignored="false" />
+  <component name="CreatePatchCommitExecutor">
+    <option name="PATCH_PATH" value="" />
+  </component>
+  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
+  <component name="FavoritesManager">
+    <favorites_list name="1519504320Learning" />
+  </component>
+  <component name="FileEditorManager">
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
+      <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="673">
+              <caret line="79" column="51" selection-start-line="79" selection-start-column="51" selection-end-line="79" selection-end-column="51" />
+              <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="76">
+              <caret line="4" column="25" selection-start-line="3" selection-start-column="4" selection-end-line="4" selection-end-column="25" />
+              <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="285">
+              <caret line="16" column="53" selection-start-line="16" selection-start-column="53" selection-end-line="16" selection-end-column="53" />
+              <folding>
+                <element signature="e#127#128#0" expanded="true" />
+                <element signature="e#152#153#0" expanded="true" />
+                <element signature="e#490#491#0" expanded="true" />
+                <element signature="e#522#523#0" expanded="true" />
+              </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="350">
+              <caret line="63" column="0" selection-start-line="63" selection-start-column="0" selection-end-line="63" selection-end-column="0" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Queue.java" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/com/coding/basic/Queue.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="171">
+              <caret line="9" column="30" selection-start-line="9" selection-start-column="30" selection-end-line="9" selection-end-column="30" />
+              <folding>
+                <element signature="e#112#113#0" expanded="true" />
+                <element signature="e#127#128#0" expanded="true" />
+                <element signature="e#155#156#0" expanded="true" />
+                <element signature="e#184#185#0" expanded="true" />
+                <element signature="e#293#294#0" expanded="true" />
+                <element signature="e#315#316#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$/src/com/coding/basic/BinaryTreeNode.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="38">
+              <caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <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="76">
+              <caret line="4" column="40" selection-start-line="4" selection-start-column="40" selection-end-line="4" selection-end-column="40" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
+  </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/LinkedList.java" />
+        <option value="$PROJECT_DIR$/src/com/coding/basic/Queue.java" />
+        <option value="$PROJECT_DIR$/src/com/coding/basic/Stack.java" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectFrameBounds">
+    <option name="x" value="-8" />
+    <option name="y" value="-8" />
+    <option name="width" value="1616" />
+    <option name="height" value="876" />
+  </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="ProjectPane">
+        <subPane>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="1519504320Learning" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="1519504320Learning" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="1519504320" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="1519504320Learning" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="1519504320" />
+              <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>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="1519504320Learning" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="1519504320" />
+              <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=".idea" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+        </subPane>
+      </pane>
+      <pane id="Scratches" />
+      <pane id="PackagesPane" />
+      <pane id="Scope" />
+    </panes>
+  </component>
+  <component name="PropertiesComponent">
+    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
+  </component>
+  <component name="RunManager" selected="Application.ArrayList">
+    <configuration default="false" name="LinkedList" 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="com.coding.basic.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <option name="MAIN_CLASS_NAME" value="com.coding.basic.LinkedList" />
+      <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="1519504320Learning" />
+      <envs />
+      <method />
+    </configuration>
+    <configuration default="false" name="ArrayList" 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="com.coding.basic.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <option name="MAIN_CLASS_NAME" value="com.coding.basic.ArrayList" />
+      <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="1519504320Learning" />
+      <envs />
+      <method />
+    </configuration>
+    <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="USE_LAST_SELECTED_DEVICE" value="false" />
+      <option name="PREFERRED_AVD" value="" />
+      <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="USE_LAST_SELECTED_DEVICE" value="false" />
+      <option name="PREFERRED_AVD" value="" />
+      <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="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="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="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="1519504320Learning" />
+      <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="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>
+    <list size="2">
+      <item index="0" class="java.lang.String" itemvalue="Application.LinkedList" />
+      <item index="1" class="java.lang.String" itemvalue="Application.ArrayList" />
+    </list>
+    <recent_temporary>
+      <list size="2">
+        <item index="0" class="java.lang.String" itemvalue="Application.ArrayList" />
+        <item index="1" class="java.lang.String" itemvalue="Application.LinkedList" />
+      </list>
+    </recent_temporary>
+  </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="91aa7283-14b3-44a2-8615-a52ced4174e3" name="Default" comment="" />
+      <created>1488014668818</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1488014668818</updated>
+    </task>
+    <servers />
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="-8" y="-8" width="1616" height="876" 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="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="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="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.33" sideWeight="0.5" order="7" 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="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="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <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="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="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="Messages" 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="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="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="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32972974" sideWeight="0.5" order="2" 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="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="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" />
+    </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="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/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1463">
+          <caret line="79" column="51" selection-start-line="79" selection-start-column="51" selection-end-line="79" selection-end-column="51" />
+          <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="76">
+          <caret line="4" column="25" selection-start-line="3" selection-start-column="4" selection-end-line="4" selection-end-column="25" />
+          <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="38">
+          <caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
+          <folding>
+            <element signature="e#127#128#0" expanded="true" />
+            <element signature="e#152#153#0" expanded="true" />
+            <element signature="e#490#491#0" expanded="true" />
+            <element signature="e#522#523#0" expanded="true" />
+          </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" 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$/src/com/coding/basic/Queue.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="76">
+          <caret line="4" column="40" selection-start-line="4" selection-start-column="40" selection-end-line="4" selection-end-column="40" />
+          <folding>
+            <element signature="e#112#113#0" expanded="true" />
+            <element signature="e#127#128#0" expanded="true" />
+            <element signature="e#155#156#0" expanded="true" />
+            <element signature="e#184#185#0" expanded="true" />
+            <element signature="e#293#294#0" expanded="true" />
+            <element signature="e#315#316#0" expanded="true" />
+          </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="38">
+          <caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
+          <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="76">
+          <caret line="4" column="40" selection-start-line="4" selection-start-column="40" selection-end-line="4" selection-end-column="40" />
+          <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="38">
+          <caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
+          <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="38">
+          <caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
+          <folding>
+            <element signature="e#127#128#0" expanded="true" />
+            <element signature="e#152#153#0" expanded="true" />
+            <element signature="e#490#491#0" expanded="true" />
+            <element signature="e#522#523#0" expanded="true" />
+          </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" 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$/src/com/coding/basic/List.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="38">
+          <caret line="2" column="17" 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="76">
+          <caret line="4" column="40" selection-start-line="4" selection-start-column="40" selection-end-line="4" selection-end-column="40" />
+          <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="76">
+          <caret line="4" column="25" selection-start-line="3" selection-start-column="4" selection-end-line="4" selection-end-column="25" />
+          <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="673">
+          <caret line="79" column="51" selection-start-line="79" selection-start-column="51" selection-end-line="79" selection-end-column="51" />
+          <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="350">
+          <caret line="63" column="0" selection-start-line="63" selection-start-column="0" selection-end-line="63" selection-end-column="0" />
+          <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="285">
+          <caret line="16" column="53" selection-start-line="16" selection-start-column="53" selection-end-line="16" selection-end-column="53" />
+          <folding>
+            <element signature="e#127#128#0" expanded="true" />
+            <element signature="e#152#153#0" expanded="true" />
+            <element signature="e#490#491#0" expanded="true" />
+            <element signature="e#522#523#0" expanded="true" />
+          </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="38">
+          <caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
+          <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="171">
+          <caret line="9" column="30" selection-start-line="9" selection-start-column="30" selection-end-line="9" selection-end-column="30" />
+          <folding>
+            <element signature="e#112#113#0" expanded="true" />
+            <element signature="e#127#128#0" expanded="true" />
+            <element signature="e#155#156#0" expanded="true" />
+            <element signature="e#184#185#0" expanded="true" />
+            <element signature="e#293#294#0" expanded="true" />
+            <element signature="e#315#316#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+  </component>
+</project>
\ No newline at end of file
diff --git a/group07/1519504320/.project b/group07/1519504320/.project
new file mode 100644
index 000000000..d6fb07be8
--- /dev/null
+++ b/group07/1519504320/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>1519504320Learning</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/group07/1519504320/1519504320Learning.iml b/group07/1519504320/1519504320Learning.iml
new file mode 100644
index 000000000..5034ed029
--- /dev/null
+++ b/group07/1519504320/1519504320Learning.iml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="false">
+    <output url="file://$MODULE_DIR$/bin" />
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+    </content>
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="inheritedJdk" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/group07/1519504320/src/.idea/compiler.xml b/group07/1519504320/src/.idea/compiler.xml
new file mode 100644
index 000000000..96cc43efa
--- /dev/null
+++ b/group07/1519504320/src/.idea/compiler.xml
@@ -0,0 +1,22 @@
+<?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>
+    </annotationProcessing>
+  </component>
+</project>
\ No newline at end of file
diff --git a/group07/1519504320/src/.idea/copyright/profiles_settings.xml b/group07/1519504320/src/.idea/copyright/profiles_settings.xml
new file mode 100644
index 000000000..e7bedf337
--- /dev/null
+++ b/group07/1519504320/src/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+<component name="CopyrightManager">
+  <settings default="" />
+</component>
\ No newline at end of file
diff --git a/group07/1519504320/src/.idea/misc.xml b/group07/1519504320/src/.idea/misc.xml
new file mode 100644
index 000000000..0dca27c4c
--- /dev/null
+++ b/group07/1519504320/src/.idea/misc.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="MavenImportPreferences">
+    <option name="generalSettings">
+      <MavenGeneralSettings>
+        <option name="mavenHome" value="Bundled (Maven 3)" />
+      </MavenGeneralSettings>
+    </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" />
+</project>
\ No newline at end of file
diff --git a/group07/1519504320/src/.idea/modules.xml b/group07/1519504320/src/.idea/modules.xml
new file mode 100644
index 000000000..f669a0e59
--- /dev/null
+++ b/group07/1519504320/src/.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$/.idea/src.iml" filepath="$PROJECT_DIR$/.idea/src.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/group07/1519504320/src/.idea/src.iml b/group07/1519504320/src/.idea/src.iml
new file mode 100644
index 000000000..d6ebd4805
--- /dev/null
+++ b/group07/1519504320/src/.idea/src.iml
@@ -0,0 +1,9 @@
+<?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$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/group07/1519504320/src/.idea/vcs.xml b/group07/1519504320/src/.idea/vcs.xml
new file mode 100644
index 000000000..c2365ab11
--- /dev/null
+++ b/group07/1519504320/src/.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/group07/1519504320/src/.idea/workspace.xml b/group07/1519504320/src/.idea/workspace.xml
new file mode 100644
index 000000000..030203141
--- /dev/null
+++ b/group07/1519504320/src/.idea/workspace.xml
@@ -0,0 +1,759 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ChangeListManager">
+    <list default="true" id="692236e7-cdcb-474f-9fb8-b165aa283c99" name="Default" comment="">
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
+    </list>
+    <ignored path="src.iws" />
+    <ignored path=".idea/workspace.xml" />
+    <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="ChangesViewManager" flattened_view="true" show_ignored="false" />
+  <component name="CreatePatchCommitExecutor">
+    <option name="PATCH_PATH" value="" />
+  </component>
+  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
+  <component name="FavoritesManager">
+    <favorites_list name="src" />
+  </component>
+  <component name="FileEditorManager">
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
+      <file leaf-file-name="ArrayList.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/com/coding/basic/ArrayList.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="76">
+              <caret line="4" column="25" selection-start-line="4" selection-start-column="25" selection-end-line="4" selection-end-column="25" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Iterator.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/com/coding/basic/Iterator.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="133">
+              <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Stack.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/com/coding/basic/Stack.java">
+          <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>
+      </file>
+      <file leaf-file-name="Queue.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/com/coding/basic/Queue.java">
+          <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>
+      </file>
+      <file leaf-file-name="List.java" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/com/coding/basic/List.java">
+          <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>
+      </file>
+      <file leaf-file-name="vcs.xml" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/.idea/vcs.xml">
+          <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>
+      </file>
+      <file leaf-file-name="workspace.xml" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/.idea/workspace.xml">
+          <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>
+      </file>
+    </leaf>
+  </component>
+  <component name="Git.Settings">
+    <option name="ROOT_SYNC" value="DONT_SYNC" />
+    <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$/com/coding/basic/LinkedList.java" />
+        <option value="$PROJECT_DIR$/.idea/workspace.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectFrameBounds">
+    <option name="x" value="-8" />
+    <option name="y" value="-8" />
+    <option name="width" value="1616" />
+    <option name="height" value="876" />
+  </component>
+  <component name="ProjectInspectionProfilesVisibleTreeState">
+    <entry key="Project Default">
+      <profile-state>
+        <expanded-state>
+          <State>
+            <id />
+          </State>
+          <State>
+            <id>Android Lint</id>
+          </State>
+        </expanded-state>
+      </profile-state>
+    </entry>
+  </component>
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true">
+    <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="PackagesPane" />
+      <pane id="ProjectPane">
+        <subPane>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="src" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+          </PATH>
+        </subPane>
+      </pane>
+      <pane id="Scope" />
+      <pane id="Scratches" />
+    </panes>
+  </component>
+  <component name="PropertiesComponent">
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/.." />
+    <property name="project.structure.last.edited" value="Modules" />
+    <property name="project.structure.proportion" value="0.15" />
+    <property name="project.structure.side.proportion" value="0.2" />
+    <property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" />
+    <property name="settings.editor.splitter.proportion" value="0.2" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="189" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder0" value="0" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="196" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder1" value="1" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth2" value="196" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder2" value="2" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth3" value="989" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder3" value="3" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth0" value="189" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder0" value="0" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth1" value="196" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder1" value="1" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth2" value="196" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder2" value="2" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth3" value="989" />
+    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder3" value="3" />
+  </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="USE_LAST_SELECTED_DEVICE" value="false" />
+      <option name="PREFERRED_AVD" value="" />
+      <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="USE_LAST_SELECTED_DEVICE" value="false" />
+      <option name="PREFERRED_AVD" value="" />
+      <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="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="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="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="src" />
+      <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="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>
+  </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="692236e7-cdcb-474f-9fb8-b165aa283c99" name="Default" comment="" />
+      <created>1488003825215</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1488003825215</updated>
+    </task>
+    <servers />
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="-8" y="-8" width="1616" height="876" 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="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="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="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.32972974" 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="4" 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.3243243" sideWeight="0.5" order="7" 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="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="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <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="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="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="Messages" 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="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="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="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="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="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="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" />
+    </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>
+      <option name="time" value="2" />
+    </breakpoint-manager>
+    <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$/com/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="76">
+          <caret line="4" column="25" selection-start-line="4" selection-start-column="25" selection-end-line="4" selection-end-column="25" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/com/coding/basic/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="133">
+          <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/com/coding/basic/Stack.java">
+      <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$/com/coding/basic/Queue.java">
+      <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$/com/coding/basic/List.java">
+      <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$/.idea/vcs.xml">
+      <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$/.idea/workspace.xml">
+      <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$/com/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="76">
+          <caret line="4" column="25" selection-start-line="4" selection-start-column="25" selection-end-line="4" selection-end-column="25" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/com/coding/basic/Iterator.java">
+      <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$/.idea/vcs.xml">
+      <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$/.idea/workspace.xml">
+      <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$/com/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="57">
+          <caret line="3" column="4" selection-start-line="3" selection-start-column="4" selection-end-line="3" selection-end-column="4" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/com/coding/basic/BinaryTreeNode.java">
+      <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" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/com/coding/basic/LinkedList.java">
+      <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" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/com/coding/basic/BinaryTreeNode.java">
+      <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" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/com/coding/basic/LinkedList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="228">
+          <caret line="14" column="5" selection-start-line="14" selection-start-column="5" selection-end-line="14" selection-end-column="5" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/com/coding/basic/ArrayList.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="76">
+          <caret line="4" column="25" selection-start-line="4" selection-start-column="25" selection-end-line="4" selection-end-column="25" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/.idea/vcs.xml">
+      <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$/.idea/workspace.xml">
+      <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$/com/coding/basic/Iterator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="133">
+          <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/com/coding/basic/Stack.java">
+      <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$/com/coding/basic/Queue.java">
+      <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$/com/coding/basic/List.java">
+      <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>
+  </component>
+  <component name="masterDetails">
+    <states>
+      <state key="ArtifactsStructureConfigurable.UI">
+        <settings>
+          <artifact-editor />
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="FacetStructureConfigurable.UI">
+        <settings>
+          <last-edited>No facets are configured</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="GlobalLibrariesConfigurable.UI">
+        <settings>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="JdkListConfigurable.UI">
+        <settings>
+          <last-edited>1.7</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ModuleStructureConfigurable.UI">
+        <settings>
+          <last-edited>src</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+                <option value="0.6" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ProjectLibrariesConfigurable.UI">
+        <settings>
+          <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/group07/1519504320/src/com/coding/basic/ArrayList.java b/group07/1519504320/src/com/coding/basic/ArrayList.java
new file mode 100644
index 000000000..44935deaa
--- /dev/null
+++ b/group07/1519504320/src/com/coding/basic/ArrayList.java
@@ -0,0 +1,96 @@
+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 (elementData.length == 101 && elementData[100] == null) {
+            for (int i = 0; i < elementData.length; i++) {
+                if (elementData[i] == null) {
+                    elementData[i] = o;
+                }
+            }
+        } else {
+            Object[] elementData2 = new Object[elementData.length + 1];
+            for (int i = 0; i < elementData.length; i++) {
+                elementData2[i] = elementData[i];
+            }
+            elementData2[elementData2.length - 1] = o;
+            elementData = elementData2;
+        }
+
+    }
+
+    public void add(int index, Object o) {
+        if (index < 0 || index > elementData.length - 1) {
+            return;
+        }
+        if (index <= elementData.length - 1) {
+            Object[] elementData2 = new Object[elementData.length + 1];
+            elementData2[index] = o;
+            for (int i = 0; i < elementData2.length; i++) {
+                if (i < index) {
+                    elementData2[i] = elementData[i];
+                }
+                if (i > index) {
+                    elementData2[i + 1] = elementData[i];
+                }
+            }
+            elementData = elementData2;
+        }
+
+    }
+
+    public Object get(int index) {
+        if (elementData.length - 1 < index || index < 0) {
+            return null;
+        } else {
+            return elementData[index];
+        }
+    }
+
+    public Object remove(int index) {
+        if (index > elementData.length - 1 || index < 0) {
+            return null;
+        } else {
+            Object result = elementData[index];
+            for (int i = index; i < elementData.length - 1; i++) {
+                elementData[index] = elementData[index + 1];
+            }
+            elementData[elementData.length - 1] = null;
+            return result;
+        }
+    }
+
+    public int size() {
+        return elementData.length;
+    }
+
+    public Iterator iterator() {
+
+        return new Iterator() {
+            int cursor = -1;
+
+
+            @Override
+            public boolean hasNext() {
+                if (cursor < elementData.length - 1) {
+                    return true;
+                }
+                return false;
+            }
+
+            @Override
+            public Object next() {
+
+                cursor++;
+                return elementData[cursor];
+            }
+        };
+    }
+
+
+}
diff --git a/group07/1519504320/src/com/coding/basic/BinaryTreeNode.java b/group07/1519504320/src/com/coding/basic/BinaryTreeNode.java
new file mode 100644
index 000000000..d7ac82019
--- /dev/null
+++ b/group07/1519504320/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/group07/1519504320/src/com/coding/basic/Iterator.java b/group07/1519504320/src/com/coding/basic/Iterator.java
new file mode 100644
index 000000000..06ef6311b
--- /dev/null
+++ b/group07/1519504320/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/group07/1519504320/src/com/coding/basic/LinkedList.java b/group07/1519504320/src/com/coding/basic/LinkedList.java
new file mode 100644
index 000000000..80288820a
--- /dev/null
+++ b/group07/1519504320/src/com/coding/basic/LinkedList.java
@@ -0,0 +1,157 @@
+package com.coding.basic;
+
+public class LinkedList implements List {
+
+    private Node head;
+
+    public void add(Object o) {
+        Node n = head.next;
+        while (n.next != null) {
+            n = n.next;
+        }
+        Node n1 = new Node();
+        n1.data = o;
+        n.next = n1;
+    }
+
+    public void add(int index, Object o) {
+        if (index == 0) {
+            Object o1 = head.data;
+            head.data = o;
+            Node next = new Node();
+            next.data = o1;
+            head.next = next;
+        }
+        if (index < 0) {
+            return;
+        }
+        if (size() - 1 < index) {
+            return;
+        } else {
+            int flag = 0;
+            Node pre = head;
+            while (flag != index - 1) {
+                pre = pre.next;
+                flag++;
+            }
+            Node current = new Node();
+            current.data = o;
+            Node next = pre.next;
+            pre.next = current;
+            current.next = next;
+
+        }
+
+
+    }
+
+    public Object get(int index) {
+        if (index < 0) {
+            return null;
+        }
+        if (size() - 1 < index) {
+            return null;
+        } else {
+            int flag = 0;
+            Node n = head;
+            while (flag != index) {
+                n = n.next;
+                flag++;
+            }
+            return n.data;
+        }
+    }
+
+    public Object remove(int index) {
+        if (index < 0) {
+            return null;
+        }
+        if (size() - 1 < index) {
+            return null;
+        } else {
+            int flag = 0;
+            Node pre = head;
+            while (flag != index - 1) {
+                pre = pre.next;
+                flag++;
+            }
+            Node current = pre.next;
+            Object c = current.data;
+            pre.next = current.next;
+            return c;
+        }
+    }
+
+    public int size() {
+        int size = -1;
+        if (head.data != null) {
+            size = 0;
+            Node n = head.next;
+            while (n.next != null) {
+                size++;
+                n = n.next;
+            }
+        }
+        return size;
+    }
+
+    public void addFirst(Object o) {
+        if (head.data != null) {
+            Node n = new Node();
+            n.data = o;
+            n.next = head;
+        } else {
+            head.data = o;
+        }
+
+    }
+
+    public void addLast(Object o) {
+        if (head.data == null) {
+            head.data = o;
+        } else {
+            Node n = head.next;
+            while (n.next != null) {
+                n = n.next;
+            }
+            n.next.data = o;
+        }
+    }
+
+    public Object removeFirst() {
+        if (head.data == null) {
+            return null;
+        } else {
+            Object o = head.data;
+            head = head.next;
+            return o;
+        }
+    }
+
+    public Object removeLast() {
+        if (head.data == null) {
+            return null;
+        } else {
+            Node n = head.next;
+            while (n.next != null) {
+                n = n.next;
+            }
+            Object o = n.data;
+            n.data = null;
+            return o;
+        }
+    }
+
+    public Iterator iterator() {
+        return null;
+    }
+
+
+    private static class Node {
+        Object data;
+        Node next;
+
+    }
+
+
+}
diff --git a/group07/1519504320/src/com/coding/basic/List.java b/group07/1519504320/src/com/coding/basic/List.java
new file mode 100644
index 000000000..10d13b583
--- /dev/null
+++ b/group07/1519504320/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/group07/1519504320/src/com/coding/basic/Queue.java b/group07/1519504320/src/com/coding/basic/Queue.java
new file mode 100644
index 000000000..db969b013
--- /dev/null
+++ b/group07/1519504320/src/com/coding/basic/Queue.java
@@ -0,0 +1,23 @@
+package com.coding.basic;
+
+public class Queue {
+	LinkedList a = new LinkedList();
+	public void enQueue(Object o){
+		a.add(o);
+	}
+	
+	public Object deQueue(){
+		return a.removeFirst();
+	}
+	
+	public boolean isEmpty(){
+		if(a.size()==0){
+			return true;
+		}
+		return false;
+	}
+	
+	public int size(){
+		return a.size();
+	}
+}
diff --git a/group07/1519504320/src/com/coding/basic/Stack.java b/group07/1519504320/src/com/coding/basic/Stack.java
new file mode 100644
index 000000000..6198465bf
--- /dev/null
+++ b/group07/1519504320/src/com/coding/basic/Stack.java
@@ -0,0 +1,28 @@
+package com.coding.basic;
+
+public class Stack {
+	private ArrayList elementData = new ArrayList();
+	
+	public void push(Object o){
+		elementData.add(o);
+	}
+	
+	public Object pop(){
+		Object result = elementData.get(elementData.size()-1);
+		elementData.remove(elementData.size()-1);
+		return result;
+	}
+	
+	public Object peek(){
+		return  elementData.get(elementData.size()-1);
+	}
+	public boolean isEmpty(){
+		if (elementData.size()==0){
+			return true;
+		}
+		return false;
+	}
+	public int size(){
+		return elementData.size();
+	}
+}
diff --git a/group07/178007127/001DataStructure/.classpath b/group07/178007127/001DataStructure/.classpath
new file mode 100644
index 000000000..84b630a87
--- /dev/null
+++ b/group07/178007127/001DataStructure/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="src" path="src/test/java"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry exported="true" kind="con" path="org.springsource.ide.eclipse.gradle.classpathcontainer"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/group07/178007127/001DataStructure/.gitignore b/group07/178007127/001DataStructure/.gitignore
new file mode 100644
index 000000000..4a95481e6
--- /dev/null
+++ b/group07/178007127/001DataStructure/.gitignore
@@ -0,0 +1,2 @@
+/bin/
+/build/
diff --git a/group07/178007127/001DataStructure/.project b/group07/178007127/001DataStructure/.project
new file mode 100644
index 000000000..430da9049
--- /dev/null
+++ b/group07/178007127/001DataStructure/.project
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>001DataStructure</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.springsource.ide.eclipse.gradle.core.nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/group07/178007127/001DataStructure/.settings/gradle/org.springsource.ide.eclipse.gradle.core.import.prefs b/group07/178007127/001DataStructure/.settings/gradle/org.springsource.ide.eclipse.gradle.core.import.prefs
new file mode 100644
index 000000000..67ed2b404
--- /dev/null
+++ b/group07/178007127/001DataStructure/.settings/gradle/org.springsource.ide.eclipse.gradle.core.import.prefs
@@ -0,0 +1,9 @@
+#org.springsource.ide.eclipse.gradle.core.preferences.GradleImportPreferences
+#Sat Feb 25 12:36:04 CST 2017
+addResourceFilters=true
+afterTasks=afterEclipseImport;
+beforeTasks=cleanEclipse;eclipse;
+enableAfterTasks=true
+enableBeforeTasks=true
+enableDependendencyManagement=true
+projects=;
diff --git a/group07/178007127/001DataStructure/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs b/group07/178007127/001DataStructure/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs
new file mode 100644
index 000000000..f846d7153
--- /dev/null
+++ b/group07/178007127/001DataStructure/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs
@@ -0,0 +1,5 @@
+#org.springsource.ide.eclipse.gradle.core.preferences.GradleProjectPreferences
+#Thu Feb 23 15:58:56 CST 2017
+build.family.org.gradle.tooling.model.eclipse.HierarchicalEclipseProject=;
+org.springsource.ide.eclipse.gradle.linkedresources=
+org.springsource.ide.eclipse.gradle.rootprojectloc=
diff --git a/group07/178007127/001DataStructure/.settings/gradle/org.springsource.ide.eclipse.gradle.refresh.prefs b/group07/178007127/001DataStructure/.settings/gradle/org.springsource.ide.eclipse.gradle.refresh.prefs
new file mode 100644
index 000000000..13198da61
--- /dev/null
+++ b/group07/178007127/001DataStructure/.settings/gradle/org.springsource.ide.eclipse.gradle.refresh.prefs
@@ -0,0 +1,8 @@
+#org.springsource.ide.eclipse.gradle.core.actions.GradleRefreshPreferences
+#Sat Feb 25 12:36:04 CST 2017
+addResourceFilters=true
+afterTasks=afterEclipseImport;
+beforeTasks=cleanEclipse;eclipse;
+enableAfterTasks=true
+enableBeforeTasks=true
+useHierarchicalNames=false
diff --git a/group07/178007127/001DataStructure/.settings/org.eclipse.jdt.core.prefs b/group07/178007127/001DataStructure/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..7341ab168
--- /dev/null
+++ b/group07/178007127/001DataStructure/.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.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/group07/178007127/001DataStructure/README.md b/group07/178007127/001DataStructure/README.md
new file mode 100644
index 000000000..f0a705d37
--- /dev/null
+++ b/group07/178007127/001DataStructure/README.md
@@ -0,0 +1,2 @@
+# 001DataStructure
+001DataStructure 
diff --git a/group07/178007127/001DataStructure/build.gradle b/group07/178007127/001DataStructure/build.gradle
new file mode 100644
index 000000000..670cff056
--- /dev/null
+++ b/group07/178007127/001DataStructure/build.gradle
@@ -0,0 +1,9 @@
+apply plugin:'java'
+
+repositories{
+	mavenCentral()
+}
+
+dependencies{
+	compile group: 'junit', name: 'junit', version: '4.12'  
+}
\ No newline at end of file
diff --git a/group07/178007127/001DataStructure/src/main/java/com/easy/util/junit/app/TestApp.java b/group07/178007127/001DataStructure/src/main/java/com/easy/util/junit/app/TestApp.java
new file mode 100644
index 000000000..1ab6bdd88
--- /dev/null
+++ b/group07/178007127/001DataStructure/src/main/java/com/easy/util/junit/app/TestApp.java
@@ -0,0 +1,19 @@
+package com.easy.util.junit.app;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import com.easy.util.myarraylist.TestArrayList;
+import com.easy.util.mylinkedlist.TestLinkedList;
+import com.easy.util.myqueue.TestQueue;
+import com.easy.util.mystack.TestStack;
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+	TestArrayList.class,
+	TestLinkedList.class,
+	TestQueue.class,
+	TestStack.class
+})
+public class TestApp {
+
+}
diff --git a/group07/178007127/001DataStructure/src/main/java/com/easy/util/myarraylist/ArrayList.java b/group07/178007127/001DataStructure/src/main/java/com/easy/util/myarraylist/ArrayList.java
new file mode 100644
index 000000000..1bab864a1
--- /dev/null
+++ b/group07/178007127/001DataStructure/src/main/java/com/easy/util/myarraylist/ArrayList.java
@@ -0,0 +1,175 @@
+package com.easy.util.myarraylist;
+
+import com.easy.util.myiterator.Iterator;
+
+public class ArrayList{
+
+	private static final Object[] EMPTY_ELEMENTDATA = {};
+
+	private Object[] elementData;
+
+	private int size;
+	
+
+	// region 构造函数
+	public ArrayList() {
+		this.elementData = EMPTY_ELEMENTDATA;
+	}
+
+	public ArrayList(int initialCapacity) {
+		if (initialCapacity < 0) {
+			throw new IllegalArgumentException("Illegal Capacity:" + initialCapacity);
+		}
+		this.elementData = new Object[initialCapacity];
+	}
+	// endregion
+
+	// region add方法
+	public boolean add(Object o) {
+		if (elementData.length <= size) {
+			grow(1);
+		}
+		elementData[size++] = o;
+		return true;
+	}
+
+	public void add(int index, Object o) {
+		rangeCheckForAdd(index);
+		grow(1);
+		System.arraycopy(elementData, index, elementData, index + 1, size - index);
+		elementData[index] = o;
+		size++;
+	}
+	// endregion
+
+	// region get方法
+	public Object get(int index) {
+		rangeCheck(index);
+		return elementData[index];
+	}
+	// endregion
+
+	// region remove方法
+	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;
+		 */
+		fastRemove(index);
+		return oldValue;
+	}
+
+	public boolean remove(Object o) {
+		if (o == null) {
+			for (int index = 0; index < size; index++) {
+				if (elementData[index] == null) {
+					fastRemove(index);
+					return true;
+				}
+			}
+		} else {
+			for (int index = 0; index < size; index++) {
+				if (elementData[index].equals(o)) {
+					fastRemove(index);
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+	// endregion
+
+	// region size方法
+	public int size() {
+		return size;
+	}
+	// endregion
+
+	// region toString方法
+	@Override
+	public String toString() {
+		StringBuilder sb = new StringBuilder();
+		for (int i = 0; i < size(); i++) {
+			sb.append(elementData[i] + ",");
+		}
+		/*
+		 * for (Object object : elementData) { sb.append(object + ","); }
+		 */
+		String temp = sb.toString();
+		temp = temp.substring(0, temp.length() - 1);
+		return "[" + temp + "]";
+	}
+	// endregion
+
+	// region 私有方法
+	private void grow(int minCapacity) {
+		Object[] dest = new Object[elementData.length + minCapacity];
+		System.arraycopy(elementData, 0, dest, 0, elementData.length);
+		elementData = dest;
+	}
+
+	private void rangeCheck(int index) {
+		if (index >= size) {
+			throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
+		}
+	}
+
+	private String outOfBoundsMsg(int index) {
+		return "Index:" + index + ",Size:" + size;
+	}
+
+	private void rangeCheckForAdd(int index) {
+		if (index < 0 || index > size) {
+			throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
+		}
+	}
+
+	private void fastRemove(int index) {
+		int numMoved = size - index - 1;
+		if (numMoved > 0) {
+			System.arraycopy(elementData, index + 1, elementData, index, numMoved);
+		}
+		elementData[--size] = null;
+	}
+
+	// endregion
+
+	// region 下一版本迭代的功能
+	private static final int DEFAULT_CAPACITY = 10;
+
+	private void ensureCapacityInternal(int minCapacity) {
+		if (elementData == EMPTY_ELEMENTDATA) {
+			minCapacity = Math.max(DEFAULT_CAPACITY, minCapacity);
+		}
+		ensureCapacityInternal(minCapacity);
+	}
+
+	private void ensureExplicitCapacity(int minCapacity) {
+		if (minCapacity - elementData.length > 0) {
+			grow(minCapacity);
+		}
+	}
+	//endregion
+	
+	int currentIndex ;
+	public Iterator iterator(){
+		currentIndex=-1;
+		return new Iterator() {
+			
+			@Override
+			public Object next() {
+				return elementData[++currentIndex];
+			}
+			
+			@Override
+			public boolean hasNext() {
+				return currentIndex<size-1;
+			}
+		};
+	}
+	
+}
diff --git a/group07/178007127/001DataStructure/src/main/java/com/easy/util/myiterator/Iterator.java b/group07/178007127/001DataStructure/src/main/java/com/easy/util/myiterator/Iterator.java
new file mode 100644
index 000000000..f1a50a3c5
--- /dev/null
+++ b/group07/178007127/001DataStructure/src/main/java/com/easy/util/myiterator/Iterator.java
@@ -0,0 +1,6 @@
+package com.easy.util.myiterator;
+
+public interface Iterator {
+	boolean hasNext();
+	Object next();
+}
diff --git a/group07/178007127/001DataStructure/src/main/java/com/easy/util/mylinkedlist/LinkedList.java b/group07/178007127/001DataStructure/src/main/java/com/easy/util/mylinkedlist/LinkedList.java
new file mode 100644
index 000000000..e779689eb
--- /dev/null
+++ b/group07/178007127/001DataStructure/src/main/java/com/easy/util/mylinkedlist/LinkedList.java
@@ -0,0 +1,211 @@
+package com.easy.util.mylinkedlist;
+
+import java.util.NoSuchElementException;
+
+public class LinkedList  {
+	
+	private Node first;
+	private Node last;
+	int size=0;
+	
+	//region 构造函数
+	public LinkedList(){
+		
+	}
+	//endregion
+	
+	//region add方法
+	public void addFirst(Object o){
+		linkFirst(o);
+	}
+	
+	public void addLast(Object o){
+		linkLast(o);
+	}
+	
+	public void add(Object o){
+		linkLast(o);
+	}
+	
+	public void add(int index , Object o){
+		checkPositionIndex(index);
+		
+		if(index==size){
+			linkLast(o);
+		}else if(index==0){
+			linkFirst(o);
+		}else {
+			linkBefore(index, o);
+		}
+	}
+	//endregion
+
+	//region get 方法
+	public Object get(int index){
+		return node(index).item;
+	}
+	//endregion
+
+	//region remove 方法
+	public boolean remove(Object o){
+		Node temp=first;
+		if(o==null){
+			for(int i=0;i<size;i++){
+				if(temp.item==null){
+					unlink(i);
+					return true;
+				}
+				temp=temp.next;
+			}
+		}else{
+			for(int i=0;i<size;i++){
+				if (temp.item.equals(o)) {
+					unlink(i);
+					return true;
+				}
+				temp=temp.next;
+			}
+		}
+		return false;
+	}
+	
+	public Object removeFirst(){
+		Node temp = first;
+		if(temp==null){
+			throw new NoSuchElementException();
+		}
+		return unlinkFirst(temp);
+	}
+	public Object removeLast(){
+		Node temp =last;
+		if(last==null){
+			throw new NoSuchElementException();
+		}
+		if(size==1){
+			first=last=null;
+			size--;
+			return temp.item;
+		}
+		return unlinkLast(temp);
+	}
+	//endregion
+
+	//region size 方法
+	public int size(){
+		return this.size;
+	}
+	//endregion
+
+	//region toString方法
+	@Override
+	public String toString() {
+		StringBuilder sb = new StringBuilder();
+		Node xNode = first;
+		for(int i=0;i<size;i++){
+			Object object = xNode.item;
+			sb.append(object+",");
+			xNode=xNode.next;
+		}
+		String temp = sb.toString();
+		temp = temp.substring(0, temp.length() - 1);
+		return "[" + temp + "]";
+	}
+	//endregion
+	
+	//region 私有成员
+	private void linkBefore(int index,Object o){
+		Node pred=node(index-1);
+		Node newNode=new Node(o, node(index));
+		pred.next=newNode;
+		size++;
+	}
+	
+	private void unlink(int index){
+		Node before =node(index-1);
+		Node target = before.next;
+		Node after = target.next;
+		before.next=after;
+		size--;
+	}
+	
+	private static  class Node{
+		Object item;
+		Node next;
+		public Node(Object element,Node next) {
+			this.item=element;
+			this.next=next;
+		}
+	}
+	
+	private void linkLast(Object o){
+		Node temp=last;
+		Node newNode=new Node(o, null);
+		last=newNode;
+		if(temp==null){
+			first=newNode;
+		}else{
+			temp.next=newNode;
+		}
+		size++;
+	}
+	
+	private void linkFirst(Object o){
+		Node temp=first;
+		Node newNode=new Node(o, temp);
+		first=newNode;
+		if(temp==null){
+			last=newNode;
+		}else{
+			first.next=temp;
+		}
+		size++;
+	}
+	
+	private Object unlinkFirst(Node temp){
+		Object element = temp.item;
+		Node next = temp.next;
+		first = next;
+		if(next==null){
+			last=null;
+		}
+		size--;
+		return element;
+	}
+	
+	private Object unlinkLast(Node temp){
+		Node xNode = first;
+		for(int i=0;i<size-2;i++){
+			xNode = xNode.next;
+		}
+		last=xNode;
+		last.next=null;
+		size--;
+		return temp.item;
+	}
+	
+	private Node node(int index){
+		if(index<size){
+			Node xNode =first;
+			for(int i=0;i<index;i++){
+				xNode=xNode.next;
+			}
+			return xNode;
+		}
+		return null;
+	}
+	
+	private void checkPositionIndex(int index){
+		if(!isPositionIndex(index)){
+			throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
+		}
+	}
+	
+	private boolean isPositionIndex(int index){
+		return index>0&&index<=size;
+	}
+	
+	private String outOfBoundsMsg(int index) {
+        return "Index: "+index+", Size: "+size;
+    }
+	//endregion
+}
diff --git a/group07/178007127/001DataStructure/src/main/java/com/easy/util/myqueue/Queue.java b/group07/178007127/001DataStructure/src/main/java/com/easy/util/myqueue/Queue.java
new file mode 100644
index 000000000..0a57f448b
--- /dev/null
+++ b/group07/178007127/001DataStructure/src/main/java/com/easy/util/myqueue/Queue.java
@@ -0,0 +1,37 @@
+package com.easy.util.myqueue;
+
+import com.easy.util.mylinkedlist.LinkedList;
+
+public class Queue {
+	
+	LinkedList linkedList;
+	public Queue(){
+		linkedList=new LinkedList();
+	}
+	
+	public void enQueue(Object o){	
+		linkedList.addLast(o);
+	}
+	
+	public Object deQueue(){
+		return linkedList.removeFirst();
+	}
+	
+	public boolean isEmpty(){
+		return size()==0;
+	}
+	
+	public int size(){
+		return linkedList.size();
+	}
+	
+	@Override
+	public String toString() {
+		StringBuilder sb=new StringBuilder();
+		for(int i=0;i<linkedList.size();i++){
+			sb.append(linkedList.get(i)+",");
+		}
+		String msg=sb.toString();
+		return "["+msg.subSequence(0, msg.length()-1)+"]";
+	}
+}
diff --git a/group07/178007127/001DataStructure/src/main/java/com/easy/util/mystack/Stack.java b/group07/178007127/001DataStructure/src/main/java/com/easy/util/mystack/Stack.java
new file mode 100644
index 000000000..b599fd440
--- /dev/null
+++ b/group07/178007127/001DataStructure/src/main/java/com/easy/util/mystack/Stack.java
@@ -0,0 +1,41 @@
+package com.easy.util.mystack;
+
+import com.easy.util.mylinkedlist.LinkedList;
+
+public class Stack {
+	private LinkedList elementData;
+	
+	public Stack(){
+		elementData=new LinkedList();
+	}
+	
+	public void push(Object o){		
+		elementData.addLast(o);
+	}
+	
+	public Object pop(){
+		return elementData.removeLast();
+	}
+	
+	public Object peek(){
+		return elementData.get(size()-1);
+	}
+	
+	public boolean isEmpty(){
+		return size()==0;
+	}
+	
+	public int size(){
+		return elementData.size();
+	}
+	
+	@Override
+	public String toString() {
+		StringBuilder sb=new StringBuilder();
+		for(int i=0;i<elementData.size();i++){
+			sb.append(elementData.get(i)+",");
+		}
+		String msg=sb.toString();
+		return "["+msg.subSequence(0, msg.length()-1)+"]";
+	}
+}
diff --git a/group07/178007127/001DataStructure/src/test/java/com/easy/util/myarraylist/TestArrayList.java b/group07/178007127/001DataStructure/src/test/java/com/easy/util/myarraylist/TestArrayList.java
new file mode 100644
index 000000000..9d61b00c5
--- /dev/null
+++ b/group07/178007127/001DataStructure/src/test/java/com/easy/util/myarraylist/TestArrayList.java
@@ -0,0 +1,82 @@
+package com.easy.util.myarraylist;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.easy.util.myarraylist.ArrayList;
+import com.easy.util.myiterator.Iterator;
+
+public class TestArrayList {
+	
+	@Test
+	public void test_add(){
+		ArrayList list=new ArrayList();
+		list.add("aa");
+		list.add("bb");
+		Assert.assertEquals("[aa,bb]", list.toString());
+		Assert.assertEquals(2, list.size());
+	}
+	
+	@Test
+	public void test_add_object(){
+		ArrayList list=new ArrayList();
+		list.add("aa");
+		list.add("cc");
+		list.add(1, "bb");
+		Assert.assertEquals("[aa,bb,cc]", list.toString());
+		Assert.assertEquals(3, list.size());
+	}
+	
+	@Test
+	public void test_get(){
+		ArrayList list=new ArrayList();
+		list.add("aa");
+		list.add("cc");
+		list.add(1, "bb");
+		Assert.assertEquals("aa", list.get(0));
+		Assert.assertEquals("bb", list.get(1));
+		Assert.assertEquals("cc", list.get(2));
+	}
+	
+	@Test
+	public void test_remove_int(){
+		ArrayList list=new ArrayList();
+		list.add("aa");
+		list.add("cc");
+		list.add(1, "bb");
+		Object removeObj=list.remove(1);
+		Assert.assertEquals("bb", removeObj);
+		Assert.assertEquals("[aa,cc]", list.toString());
+		Assert.assertEquals(2, list.size());
+	}
+	
+	@Test
+	public void test_remove_object(){
+		ArrayList list=new ArrayList();
+		list.add("aa");
+		list.add("cc");
+		list.add(1, "bb");
+		boolean b=list.remove("bb");
+		Assert.assertEquals(true,b);
+		Assert.assertEquals("[aa,cc]", list.toString());
+		Assert.assertEquals(2, list.size());
+	}
+	
+	@Test
+	public void test_iterator(){
+		ArrayList list=new ArrayList();
+		list.add("aa");
+		list.add("cc");
+		list.add(1, "bb");
+		
+		Iterator iterator = list.iterator();
+		
+		/*while(iterator.hasNext()){
+			System.out.println(iterator.next());
+		}*/
+		
+		Assert.assertEquals("aa", iterator.next());
+		Assert.assertEquals("bb", iterator.next());
+		Assert.assertEquals("cc", iterator.next());
+	}
+}
diff --git a/group07/178007127/001DataStructure/src/test/java/com/easy/util/mylinkedlist/TestLinkedList.java b/group07/178007127/001DataStructure/src/test/java/com/easy/util/mylinkedlist/TestLinkedList.java
new file mode 100644
index 000000000..cda56c110
--- /dev/null
+++ b/group07/178007127/001DataStructure/src/test/java/com/easy/util/mylinkedlist/TestLinkedList.java
@@ -0,0 +1,108 @@
+package com.easy.util.mylinkedlist;
+
+import org.junit.Assert;
+import org.junit.Test;
+import com.easy.util.mylinkedlist.LinkedList;
+
+public class TestLinkedList {
+
+	@Test
+	public void test_addFirst_object() {
+		LinkedList list=new LinkedList();
+		list.addFirst("aa");
+		Assert.assertEquals("[aa]",list.toString());
+		list.addFirst("bb");
+		Assert.assertEquals("[bb,aa]",list.toString());
+		list.addFirst("cc");
+		Assert.assertEquals("[cc,bb,aa]", list.toString());
+		Assert.assertEquals(3, list.size);
+	}
+
+	@Test
+	public void test_addLast_object() {
+		LinkedList list=new LinkedList();
+		list.addLast("aa");
+		Assert.assertEquals("[aa]",list.toString() );
+		list.addLast("bb");
+		Assert.assertEquals("[aa,bb]", list.toString());
+		list.addLast("cc");
+		Assert.assertEquals("[aa,bb,cc]", list.toString());
+		Assert.assertEquals(3, list.size);
+	}
+	
+	@Test
+	public void test_add_object() {
+		LinkedList list=new LinkedList();
+		list.add("aa");
+		Assert.assertEquals("[aa]",list.toString() );
+		list.add("bb");
+		Assert.assertEquals("[aa,bb]", list.toString());
+		list.add("cc");
+		Assert.assertEquals("[aa,bb,cc]", list.toString());
+		Assert.assertEquals(3, list.size);
+	}
+	
+	@Test
+	public void test_add_int_object() {
+		LinkedList list=new LinkedList();
+		list.add("aa");
+		list.add("cc");
+		list.add(1,"bb");
+		Assert.assertEquals("[aa,bb,cc]", list.toString());
+	}
+	
+
+	@Test
+	public void test_get_int() {
+		LinkedList list=new LinkedList();
+		list.add("aa");
+		list.add("bb");
+		list.add("cc");
+		Assert.assertEquals("aa", list.get(0));
+		Assert.assertEquals("bb", list.get(1));
+		Assert.assertEquals("cc", list.get(2));
+	}
+
+	@Test
+	public void test_remove_object() {
+		LinkedList list=new LinkedList();
+		list.add("aa");
+		list.add("bb");
+		list.add("cc");
+		boolean b = list.remove("bb");
+		Assert.assertEquals(true, b);
+		Assert.assertEquals(2, list.size);
+		Assert.assertEquals("aa", list.get(0));
+		Assert.assertEquals("cc", list.get(1));
+		Assert.assertEquals("[aa,cc]", list.toString());
+	}
+
+	@Test
+	public void test_removeFirst() {
+		LinkedList list=new LinkedList();
+		list.add("aa");
+		list.add("bb");
+		list.add("cc");
+		Object obj = list.removeFirst();
+		Assert.assertEquals("aa",obj);
+		Assert.assertEquals(2, list.size);
+		Assert.assertEquals("bb", list.get(0));
+		Assert.assertEquals("cc", list.get(1));
+		Assert.assertEquals("[bb,cc]", list.toString());
+	}
+	
+	@Test
+	public void test_removeLast() {
+		LinkedList list=new LinkedList();
+		list.add("aa");
+		list.add("bb");
+		list.add("cc");
+		Object obj = list.removeLast();
+		Assert.assertEquals("cc",obj);
+		Assert.assertEquals(2, list.size);
+		Assert.assertEquals("aa", list.get(0));
+		Assert.assertEquals("bb", list.get(1));
+		Assert.assertEquals("[aa,bb]", list.toString());
+	}
+
+}
diff --git a/group07/178007127/001DataStructure/src/test/java/com/easy/util/myqueue/TestQueue.java b/group07/178007127/001DataStructure/src/test/java/com/easy/util/myqueue/TestQueue.java
new file mode 100644
index 000000000..66068e455
--- /dev/null
+++ b/group07/178007127/001DataStructure/src/test/java/com/easy/util/myqueue/TestQueue.java
@@ -0,0 +1,27 @@
+package com.easy.util.myqueue;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class TestQueue {
+	
+	@Test
+	public void test_enQueue_object(){
+		Queue queue =new Queue();
+		queue.enQueue("aa");
+		queue.enQueue("bb");
+		queue.enQueue("cc");
+		Assert.assertEquals("[aa,bb,cc]",queue.toString());
+	}
+	
+	@Test
+	public void test_deQueue(){
+		Queue queue =new Queue();
+		queue.enQueue("aa");
+		queue.enQueue("bb");
+		queue.enQueue("cc");
+		Assert.assertEquals("aa", queue.deQueue());
+		Assert.assertEquals("bb", queue.deQueue());
+		Assert.assertEquals("cc", queue.deQueue());
+	}
+}
diff --git a/group07/178007127/001DataStructure/src/test/java/com/easy/util/mystack/TestStack.java b/group07/178007127/001DataStructure/src/test/java/com/easy/util/mystack/TestStack.java
new file mode 100644
index 000000000..5dc70546f
--- /dev/null
+++ b/group07/178007127/001DataStructure/src/test/java/com/easy/util/mystack/TestStack.java
@@ -0,0 +1,31 @@
+package com.easy.util.mystack;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class TestStack {
+	
+	@Test
+	public void test_push_object(){
+		Stack stack =new Stack();
+		stack.push("aa");
+		stack.push("bb");
+		stack.push("cc");
+		Assert.assertEquals("[aa,bb,cc]", stack.toString());
+		Assert.assertEquals("cc", stack.peek());
+		Assert.assertEquals(3, stack.size());
+	}
+	
+	@Test
+	public void test_pop(){
+		Stack stack =new Stack();
+		stack.push("aa");
+		stack.push("bb");
+		stack.push("cc");
+		Assert.assertEquals("cc", stack.pop());
+		Assert.assertEquals("bb", stack.pop());
+		Assert.assertEquals("aa", stack.pop());
+		Assert.assertEquals(0, stack.size());
+	}
+	
+}
diff --git "a/group07/20409287/git\345\221\275\344\273\244.txt" "b/group07/20409287/git\345\221\275\344\273\244.txt"
index 8bcf2ffa0..bd0bffaae 100644
--- "a/group07/20409287/git\345\221\275\344\273\244.txt"
+++ "b/group07/20409287/git\345\221\275\344\273\244.txt"
@@ -1,11 +1,11 @@
-��װgit gui��������git bash����
-1.��¡
+安装git gui软件，打开git bash操作
+1.克隆
 git clone git@github.com:leijing1992/coding2017.git
-2.�����޸ĵ��ļ�
+2.添加修改的文件
 git add -A
-3.�ύ���ݴ���
-git commit -m "�ύ***����"
-4.����master
+3.提交到暂存区
+git commit -m "提交***代码"
+4.更新master
 git pull origin master
-5.�ύ��master
+5.提交到master
 git push origin master
\ No newline at end of file
diff --git a/group07/20409287/src/main/java/xdx/homework/first/ArrayList.java b/group07/20409287/src/main/java/xdx/homework/first/ArrayList.java
new file mode 100644
index 000000000..b7ffc73d0
--- /dev/null
+++ b/group07/20409287/src/main/java/xdx/homework/first/ArrayList.java
@@ -0,0 +1,214 @@
+package xdx.homework.first;
+
+
+public class ArrayList<E> implements List<E> {
+
+    private Object[] elements;
+
+    // 列表长度,默认10个元素
+    private int size = 10;
+
+    // 最后一个元素的位置
+    private int position = -1;
+
+    public ArrayList() {
+        elements = new Object[size];
+    }
+
+    public ArrayList(final int capacity) {
+        if (capacity <= 0)
+            throw new RuntimeException("列表长度不可小于等于0!");
+        elements = new Object[capacity];
+    }
+
+    /**
+     * 添加元素
+     *
+     * @param e 要添加的元素
+     * @return
+     */
+    @Override
+    public boolean add(E e) {
+
+        if (++position > size - 1) {
+            grow();
+        } else {
+            elements[position] = e;
+        }
+        return true;
+    }
+
+    /**
+     * 删除指定索引的元素
+     *
+     * @param index 索引下标
+     * @return
+     */
+    @Override
+    @SuppressWarnings("unchecked")
+    public E remove(int index) {
+
+        if (index < 0 || index > position || this.isEmpty())
+            throw new IndexOutOfBoundsException("要删除的索引不正确!");
+
+        E returnElement = (E) elements[index];
+        elements[index] = null;
+        System.arraycopy(elements, index + 1, elements, index, position + 1 - index);
+        position--;
+        return returnElement;
+    }
+
+    /**
+     * 删除指定的元素
+     *
+     * @param e
+     * @return
+     */
+    @Override
+    public boolean remove(E e) {
+
+        if (!this.contains(e)) return false;
+        int removeIndex = 0;
+        for(int i = 0; i < this.position; i++) {
+            if(elements[i].equals(e)) {
+                removeIndex = i;
+                break;
+            }
+        }
+        remove(removeIndex);
+        return true;
+    }
+
+    /**
+     * 返回列表长度
+     *
+     * @return
+     */
+    @Override
+    public int size() {
+        return position + 1;
+    }
+
+    /**
+     * 判断列表是否为空
+     *
+     * @return
+     */
+    @Override
+    public boolean isEmpty() {
+        return position == -1;
+    }
+
+    /**
+     * 获取指定索引的元素
+     *
+     * @param index
+     * @return
+     */
+    @Override
+    @SuppressWarnings("unchecked")
+    public E get(int index) {
+        if (index > position) return null;
+        return (E)elements[index];
+    }
+
+    /**
+     * 重置某个索引的元素
+     *
+     * @param index
+     * @param o
+     * @return
+     */
+    @Override
+    public boolean set(int index, Object o) {
+        if (index > position) return false;
+        elements[index] = null;
+        elements[index] = o;
+        return true;
+    }
+
+    /**
+     * 判断是否包含某个元素
+     *
+     * @param o
+     * @return
+     */
+    @Override
+    public boolean contains(Object o) {
+
+        if(this.isEmpty()) return false;
+        for(int i = 0; i <= position; i++) {
+            if (elements[i].equals(o))
+                return true;
+        }
+        return false;
+    }
+
+    /**
+     * 清空列表
+     */
+    @Override
+    public void clear() {
+        for(int i = 0; i <= this.size(); i++) {
+            elements[i] = null;
+        }
+        position = -1;
+    }
+
+    /**
+     * 取得迭代器
+     *
+     * @return
+     */
+    @Override
+    public Iterator<E> iterator() {
+        return new Itr();
+    }
+
+    /**
+     * 数组增长
+     */
+    private void grow() {
+        Object[] newElements = new Object[size << 2];
+        System.arraycopy(elements, 0, elements, 0, this.size);
+        elements = null;
+        elements = newElements;
+    }
+
+    private class Itr implements Iterator<E> {
+
+        private int itrIndex = 0;
+
+        @Override
+        public boolean hasNext() {
+            return get(itrIndex) != null;
+        }
+
+        @Override
+        @SuppressWarnings("unchecked")
+        public E next() {
+            return (E) elements[itrIndex++];
+        }
+
+        @Override
+        public void remove() {
+            ArrayList.this.remove(itrIndex);
+        }
+    }
+
+    @Override
+    public String toString() {
+
+        if(this.isEmpty()) {
+            return "[]";
+        }
+        StringBuilder strList = new StringBuilder("[");
+        for(int i = 0; i < this.size(); i++) {
+            strList.append(elements[i].toString()).append(",");
+        }
+        strList.deleteCharAt(strList.length() - 1);
+        strList.append("]");
+        return strList.toString();
+    }
+
+}
diff --git a/group07/20409287/src/main/java/xdx/homework/first/Hello.java b/group07/20409287/src/main/java/xdx/homework/first/Hello.java
new file mode 100644
index 000000000..1abb23045
--- /dev/null
+++ b/group07/20409287/src/main/java/xdx/homework/first/Hello.java
@@ -0,0 +1,15 @@
+package xdx.homework.first;
+
+import java.util.List;
+
+/**
+ * @Description: Hello World!
+ * @author: xdx
+ * @date: 2017年2月25日 上午11:37:58
+ */
+public class Hello {
+
+    public static void main(String[] args) {
+        System.out.println("Hello WOrl");
+    }
+}
diff --git a/group07/20409287/src/main/java/xdx/homework/first/Iterator.java b/group07/20409287/src/main/java/xdx/homework/first/Iterator.java
new file mode 100644
index 000000000..b90db66d5
--- /dev/null
+++ b/group07/20409287/src/main/java/xdx/homework/first/Iterator.java
@@ -0,0 +1,11 @@
+package xdx.homework.first;
+
+
+public interface Iterator<E> {
+
+	boolean hasNext();
+
+	E next();
+
+	void remove();
+}
diff --git a/group07/20409287/src/main/java/xdx/homework/first/LinkedList.java b/group07/20409287/src/main/java/xdx/homework/first/LinkedList.java
new file mode 100644
index 000000000..1c3158920
--- /dev/null
+++ b/group07/20409287/src/main/java/xdx/homework/first/LinkedList.java
@@ -0,0 +1,246 @@
+package xdx.homework.first;
+
+/**
+ * @Description: 链式列表
+ */
+public class LinkedList<E> implements List<E> {
+
+    private class Node {
+
+        private E data; // 数据域
+
+        private Node next;  // 指针域
+
+        public Node() {
+        }
+
+        private Node(E data) {
+            this.data = data;
+            this.next = null;
+        }
+
+    }
+
+    // 链表大小
+    private int size = 0;
+
+    private Node head;
+
+    private Node tail;
+
+    /**
+     * 添加元素
+     *
+     * @param data
+     * @return
+     */
+    @Override
+    public boolean add(E data) {
+
+        if(this.head != null) {
+            Node newNode = new Node(data);
+            this.tail.next = newNode;
+            this.tail = newNode;
+        } else {
+            this.head = new Node(data);
+            this.tail = this.head;
+        }
+        size++;
+        return true;
+    }
+
+    /**
+     * 删除指定索引的元素
+     *
+     * @param index@return
+     */
+    @Override
+    public E remove(int index) {
+
+        if (index < 0 || index > size) {
+            throw new IndexOutOfBoundsException("索引不正确!");
+        }
+        if (isEmpty()) {
+            throw new RuntimeException("链表为空!");
+        }
+        Node currentNode = this.head;
+        Node preNode = currentNode;
+        for (int i = 0; i < index; i++) {
+            preNode = currentNode;
+            currentNode = currentNode.next;
+        }
+        preNode.next = currentNode.next;
+        size--;
+        return currentNode.data;
+    }
+
+    /**
+     * 删除指定的元素
+     *
+     * @param e
+     * @return
+     */
+    @Override
+    public boolean remove(E e) {
+
+        if (!this.contains(e)) return false;
+
+        if (this.head.data.equals(e)) {
+            this.head = this.head.next;
+            size--;
+            return true;
+        }
+        Node currentNode = this.head;
+        Node preNode = currentNode;
+        boolean isFind = false;
+        for (int i = 0; i < size; i++) {
+            if(currentNode.data.equals(e)) {
+                isFind = true;
+                break;
+            }
+            preNode = currentNode;
+            currentNode = currentNode.next;
+        }
+        if (!isFind) return false;
+        preNode.next = currentNode.next;
+        size--;
+        return true;
+    }
+
+    /**
+     * 返回列表长度
+     *
+     * @return
+     */
+    @Override
+    public int size() {
+        return size;
+    }
+
+    /**
+     * 判断列表是否为空
+     *
+     * @return
+     */
+    @Override
+    public boolean isEmpty() {
+        return size == 0;
+    }
+
+    /**
+     * 获取指定索引的元素
+     *
+     * @param index
+     * @return
+     */
+    @Override
+    public E get(int index) {
+
+        if (index < 0 || index > size || isEmpty()) {
+            throw new IndexOutOfBoundsException("索引不正确!");
+        }
+        Node currentNode = this.head;
+        for (int i = 0; i < index; i++) {
+            currentNode = currentNode.next;
+        }
+        return currentNode.data;
+    }
+
+    /**
+     * 重置某个索引的元素
+     *
+     * @param index
+     * @param e
+     * @return
+     */
+    @Override
+    public boolean set(int index, E e) {
+
+        if (index < 0 || index > size || isEmpty()) {
+            throw new IndexOutOfBoundsException("索引不正确!");
+        }
+        Node currentNode = this.head;
+        for (int i = 0; i < index; i++) {
+            currentNode = currentNode.next;
+        }
+        currentNode.data = e;
+        return false;
+    }
+
+    /**
+     * 判断是否包含某个元素
+     *
+     * @param e
+     * @return
+     */
+    @Override
+    public boolean contains(E e) {
+
+        if (isEmpty()) return false;
+        Node currentNode = this.head;
+        boolean isFind = false;
+        for (int i = 0; i < size(); i++) {
+            if(currentNode.data.equals(e)) {
+                isFind = true;
+            }
+            currentNode = currentNode.next;
+        }
+        return isFind;
+    }
+
+    /**
+     * 清空列表
+     */
+    @Override
+    public void clear() {
+        this.head = this.tail = null;
+        size = 0;
+    }
+
+    @Override
+    public String toString() {
+
+        if (isEmpty()) return "[]";
+        StringBuilder strLinkedList = new StringBuilder("[");
+        Node currentNode = this.head;
+        while (currentNode.next != null) {
+            strLinkedList.append(currentNode.data.toString()).append(",");
+            currentNode = currentNode.next;
+        }
+        strLinkedList.append(currentNode.data.toString()).append("]");
+        return strLinkedList.toString();
+    }
+
+    /**
+     * 取得迭代器
+     *
+     * @return
+     */
+    @Override
+    public Iterator<E> iterator() {
+        return new Itr();
+    }
+
+    private class Itr implements Iterator<E> {
+
+        Node curNode = LinkedList.this.head;
+
+        @Override
+        public boolean hasNext() {
+            return curNode != null;
+        }
+
+        @Override
+        public E next() {
+            Node thisNode = curNode;
+            curNode = curNode.next;
+            return thisNode.data;
+        }
+
+        @Override
+        public void remove() {
+            LinkedList.this.remove(curNode.data);
+            curNode = curNode.next;
+        }
+    }
+}
diff --git a/group07/20409287/src/main/java/xdx/homework/first/List.java b/group07/20409287/src/main/java/xdx/homework/first/List.java
new file mode 100644
index 000000000..7c6f1c4e5
--- /dev/null
+++ b/group07/20409287/src/main/java/xdx/homework/first/List.java
@@ -0,0 +1,86 @@
+package xdx.homework.first;
+
+/**
+ * @param <E>
+ * @Description: 定义一组操作有序列表的接口
+ * @author: xdx
+ * @date: 2017年2月21日 下午8:53:52
+ */
+public interface List<E> {
+
+    /**
+     * 添加元素
+     *
+     * @param e
+     * @return
+     */
+    boolean add(E e);
+
+    /**
+     * 删除指定索引的元素
+     *
+     * @param int 索引下标
+     * @return
+     */
+    E remove(int index);
+
+    /**
+     * 删除指定的元素
+     *
+     * @param e
+     * @return
+     */
+    boolean remove(E e);
+
+    /**
+     * 返回列表长度
+     *
+     * @return
+     */
+    int size();
+
+    /**
+     * 判断列表是否为空
+     *
+     * @return
+     */
+    boolean isEmpty();
+
+    /**
+     * 获取指定索引的元素
+     *
+     * @param index
+     * @return
+     */
+    E get(int index);
+
+    /**
+     * 重置某个索引的元素
+     *
+     * @param index
+     * @param e
+     * @return
+     */
+    boolean set(int index, E e);
+
+    /**
+     * 判断是否包含某个元素
+     *
+     * @param e
+     * @return
+     */
+    boolean contains(E e);
+
+    /**
+     * 清空列表
+     */
+    void clear();
+
+    /**
+     * 取得迭代器
+     *
+     * @return
+     */
+    Iterator<E> iterator();
+
+}
diff --git a/group07/20409287/src/main/java/xdx/homework/first/Queue.java b/group07/20409287/src/main/java/xdx/homework/first/Queue.java
new file mode 100644
index 000000000..5d98cff31
--- /dev/null
+++ b/group07/20409287/src/main/java/xdx/homework/first/Queue.java
@@ -0,0 +1,97 @@
+package xdx.homework.first;
+
+/**
+ * @Description: 链式队列
+ */
+public class Queue<E> {
+
+    private class Node {
+
+        private E data; // 数据域
+
+        private Node next;  // 指针域
+
+        public Node() {
+        }
+
+        private Node(E data) {
+            this.data = data;
+            this.next = null;
+        }
+
+    }
+
+    private Node front;    // 队头
+
+    private Node rear;     // 队尾
+
+    private int length; // 队长
+
+    public void enQueue(E data) {
+
+        if(this.front == null) {
+            this.front = new Node(data);
+            this.rear = this.front;
+        } else {
+            Node newNode = new Node(data);
+            this.rear.next = newNode;
+            this.rear = newNode;
+        }
+        length++;
+    }
+
+    public E deQueue() {
+
+        if (isEmpty()) {
+            return null;
+        }
+        Node oldFront = this.front;
+        this.front = this.front.next;
+        length--;
+        return oldFront.data;
+    }
+
+    public int length() {
+        return length;
+    }
+
+    public boolean isEmpty() {
+        return this.front == this.rear;
+    }
+
+    public void clear() {
+        this.length = 0;
+        this.front = null;
+        this.rear = null;
+    }
+
+    public E getFront() {
+
+        if (this.isEmpty()) {
+            return null;
+        }
+        return this.front.data;
+    }
+
+    public E getRear() {
+
+        if(this.isEmpty()) return null;
+        return this.rear.data;
+    }
+
+    public String toString() {
+
+        if (this.length == 0) return "[]";
+
+        Node node = this.front;
+        StringBuilder queueToString = new StringBuilder("[");
+        while (node.next != null) {
+            queueToString.append(node.data.toString()).append(",");
+            node = node.next;
+        }
+        queueToString.append(node.data.toString()).append("]");
+        return queueToString.toString();
+    }
+
+
+}
diff --git a/group07/20409287/src/main/java/xdx/homework/first/Stack.java b/group07/20409287/src/main/java/xdx/homework/first/Stack.java
new file mode 100644
index 000000000..d898ffeb6
--- /dev/null
+++ b/group07/20409287/src/main/java/xdx/homework/first/Stack.java
@@ -0,0 +1,81 @@
+package xdx.homework.first;
+
+/**
+ * @Description:
+ * @author: {User}
+ * @date: {Date}
+ */
+public class Stack<E> {
+
+    private class Node {
+
+        private E data; // 数据域
+
+        private Node next;  // 指针域
+
+        public Node() {
+        }
+
+        private Node(E data) {
+            this.data = data;
+            this.next = null;
+        }
+    }
+
+    private int size;
+
+    private Node top;
+
+    public void push(E e) {
+        if(!isEmpty()) {
+            Node newNode = new Node(e);
+            newNode.next = top;
+            top = newNode;
+        } else {
+            top = new Node(e);
+        }
+        size++;
+    }
+
+    public E pop() {
+        if(isEmpty()) throw new RuntimeException("空栈!");
+        Node popNode = top;
+        top = top.next;
+        return popNode.data;
+    }
+
+    public boolean isEmpty() {
+        return size == 0;
+    }
+
+    public E peek() {
+        if(isEmpty()) throw new RuntimeException("空栈!");
+        return top.data;
+    }
+
+    public int size() {
+        return size;
+    }
+
+    public void clear() {
+        top = null;
+        size = 0;
+    }
+
+    @Override
+    public String toString() {
+
+        if(isEmpty()) return "[]";
+        StringBuilder stackToString = new StringBuilder("[");
+        Node itr = this.top;
+        while(itr != null) {
+            stackToString.append(itr.data.toString()).append(",");
+            itr = itr.next;
+        }
+        stackToString.deleteCharAt(stackToString.length() - 1).append("]");
+
+        return stackToString.toString();
+    }
+
+
+}
diff --git a/group07/20409287/src/test/xdx/homework/first/ArrayListTest.java b/group07/20409287/src/test/xdx/homework/first/ArrayListTest.java
new file mode 100644
index 000000000..2c7140187
--- /dev/null
+++ b/group07/20409287/src/test/xdx/homework/first/ArrayListTest.java
@@ -0,0 +1,177 @@
+package xdx.homework.first;
+
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * ArrayList Tester.
+ *
+ * @author xdx
+ * @version 1.0
+ * @since <pre>2月25日, 2017</pre>
+ */
+public class ArrayListTest {
+
+    private List<String> defaultTestList;
+
+    @Before
+    public void before() throws Exception {
+
+        defaultTestList = new ArrayList<>();
+        Assert.assertTrue(defaultTestList.add("《三国演义》"));
+        Assert.assertTrue(defaultTestList.add("《红楼梦》"));
+        Assert.assertTrue(defaultTestList.add("《西游记》"));
+        Assert.assertTrue(defaultTestList.add("《水浒传》"));
+    }
+
+    @After
+    public void after() throws Exception {
+    }
+
+    /**
+     * Method: add(E e)
+     */
+    @Test
+    public void testAdd() throws Exception {
+
+        List<Integer> testList = new ArrayList<>();
+        Assert.assertTrue(testList.add(1));
+        Assert.assertTrue(testList.add(2));
+        Assert.assertTrue(testList.add(3));
+        System.out.println(testList.toString());
+    }
+
+    /**
+     * Method: remove(int index)
+     */
+    @Test
+    public void testRemoveIndex() throws Exception {
+
+        List<Integer> testReomoveList = new ArrayList<>();
+        Assert.assertTrue(testReomoveList.add(4));
+        Assert.assertTrue(testReomoveList.add(5));
+        Assert.assertTrue(testReomoveList.add(6));
+        System.out.println("删除前: " + testReomoveList);
+        Integer delElement = testReomoveList.get(0);
+        Assert.assertTrue(testReomoveList.remove(0).equals(delElement));
+        System.out.println("删除后: " + testReomoveList);
+    }
+
+    /**
+     * Method: remove(E e)
+     */
+    @Test
+    public void testRemoveE() throws Exception {
+
+        List<Integer> testReomoveList = new ArrayList<>();
+        Assert.assertTrue(testReomoveList.add(7));
+        Assert.assertTrue(testReomoveList.add(8));
+        Assert.assertTrue(testReomoveList.add(9));
+        System.out.println("删除前: " + testReomoveList);
+        Assert.assertTrue(testReomoveList.remove(new Integer(8)));
+        System.out.println("删除后: " + testReomoveList);
+    }
+
+    /**
+     * Method: size()
+     */
+    @Test
+    public void testSize() throws Exception {
+        int size = defaultTestList.size();
+        Assert.assertEquals(4, size);
+        System.out.println("defaultTest内容:" + defaultTestList);
+        System.out.println("defaultTest长度:" + size);
+    }
+
+    /**
+     * Method: isEmpty()
+     */
+    @Test
+    public void testIsEmpty() throws Exception {
+        Assert.assertFalse(defaultTestList.isEmpty());
+        List<Integer> testReomoveList = new ArrayList<>();
+        Assert.assertTrue(testReomoveList.isEmpty());
+    }
+
+    /**
+     * Method: get(int index)
+     */
+    @Test
+    public void testGet() throws Exception {
+        Assert.assertTrue("《三国演义》".equals(defaultTestList.get(0)));
+        Assert.assertFalse("《西游记》".equals(defaultTestList.get(0)));
+    }
+
+    /**
+     * Method: set(int index, Object o)
+     */
+    @Test
+    public void testSet() throws Exception {
+
+        List<Integer> testList = new ArrayList<>();
+        Assert.assertTrue(testList.add(7));
+        Assert.assertTrue(testList.add(8));
+        Assert.assertTrue(testList.add(9));
+        System.out.println("设置前: " + testList);
+        Assert.assertTrue(testList.set(0, 10));
+        System.out.println("设置后: " + testList);
+    }
+
+    /**
+     * Method: contains(Object o)
+     */
+    @Test
+    public void testContains() throws Exception {
+        Assert.assertTrue(defaultTestList.contains("《红楼梦》"));
+        Assert.assertFalse(defaultTestList.contains("《聊斋》"));
+    }
+
+    /**
+     * Method: clear()
+     */
+    @Test
+    public void testClear() throws Exception {
+
+        List<Integer> testList = new ArrayList<>();
+        Assert.assertTrue(testList.add(7));
+        Assert.assertTrue(testList.add(8));
+        Assert.assertTrue(testList.add(9));
+        System.out.println("清除前: " + testList);
+        testList.clear();
+        Assert.assertTrue(testList.isEmpty());
+        System.out.println("清除后: " + testList);
+    }
+
+    /**
+     * Method: iterator()
+     */
+    @Test
+    public void testIterator() throws Exception {
+
+        List<Integer> testList = new ArrayList<>();
+        Assert.assertTrue(testList.add(7));
+        Assert.assertTrue(testList.add(8));
+        Assert.assertTrue(testList.add(9));
+        Iterator<Integer> iterator = testList.iterator();
+        Assert.assertNotNull(iterator);
+        while(iterator.hasNext()) {
+            System.out.println(iterator.next());
+        }
+        List<String> testListByDel = new ArrayList<>();
+        Assert.assertTrue(testListByDel.add("张三"));
+        Assert.assertTrue(testListByDel.add("李四"));
+        Assert.assertTrue(testListByDel.add("王五"));
+        Iterator<String> iteratorByDel = testListByDel.iterator();
+        while(iteratorByDel.hasNext()) {
+            iteratorByDel.remove();
+        }
+        Assert.assertTrue(testListByDel.isEmpty());
+
+    }
+
+
+
+}
diff --git a/group07/20409287/src/test/xdx/homework/first/LinkedListTest.java b/group07/20409287/src/test/xdx/homework/first/LinkedListTest.java
new file mode 100644
index 000000000..dabbc04a9
--- /dev/null
+++ b/group07/20409287/src/test/xdx/homework/first/LinkedListTest.java
@@ -0,0 +1,222 @@
+package xdx.homework.first;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.Before;
+import org.junit.After;
+
+/**
+ * LinkedList Tester.
+ *
+ */
+public class LinkedListTest {
+
+    private LinkedList<String> defaultLinkList;
+
+    @Before
+    public void before() throws Exception {
+
+        defaultLinkList = new LinkedList<>();
+        defaultLinkList.add("1.苹果");
+        defaultLinkList.add("2.香蕉");
+        defaultLinkList.add("3.菠萝");
+        defaultLinkList.add("4.橙子");
+        defaultLinkList.add("5.葡萄");
+    }
+
+    @After
+    public void after() throws Exception {
+    }
+
+    /**
+     * Method: add(E data)
+     */
+    @Test
+    public void testAdd() throws Exception {
+
+        LinkedList<Integer> testLinkedList = new LinkedList<>();
+        for (Integer i = 0; i < 1000; i++) {
+            testLinkedList.add(i);
+        }
+        System.out.println(testLinkedList);
+    }
+
+    /**
+     * Method: remove(int index)
+     */
+    @Test
+    public void testRemoveIndex() throws Exception {
+
+        LinkedList<String> testLinkedList = new LinkedList<>();
+        for (int i = 0; i < 100; i++) {
+            testLinkedList.add(i + "号");
+        }
+        System.out.println("删除前:" + testLinkedList);
+        for (int i = 0; i < 50; i++) {
+            testLinkedList.remove(i);
+        }
+        System.out.println("删除后:" + testLinkedList);
+    }
+
+    /**
+     * Method: remove(E e)
+     */
+    @Test
+    public void testRemoveE() throws Exception {
+
+        LinkedList<String> testLinkedList = new LinkedList<>();
+        for (int i = 0; i < 10; i++) {
+            testLinkedList.add(i + "号");
+        }
+        System.out.println("删除前:" + testLinkedList);
+        testLinkedList.remove("1号");
+        testLinkedList.remove("10号");
+        System.out.println("删除后:" + testLinkedList);
+    }
+
+    /**
+     * Method: size()
+     */
+    @Test
+    public void testSize() throws Exception {
+
+        LinkedList<String> testLinkedList = new LinkedList<>();
+        int i = 0;
+        for (; i < 100; i++) {
+            testLinkedList.add(i + "号");
+        }
+        Assert.assertEquals(i, testLinkedList.size());
+        System.out.println("testLinkedList的内容:" + testLinkedList);
+        System.out.println("testLinkedList的长度:" + testLinkedList.size());
+    }
+
+    /**
+     * Method: isEmpty()
+     */
+    @Test
+    public void testIsEmpty() throws Exception {
+
+        LinkedList<String> testLinkedList = new LinkedList<>();
+        System.out.println("testLikedList是否为空:" + testLinkedList.isEmpty());
+        Assert.assertTrue(testLinkedList.isEmpty());
+        String insertElement = "Hello World!";
+        System.out.println("插入元素: " + insertElement);
+        testLinkedList.add(insertElement);
+        System.out.println("testLikedList是否为空:" + testLinkedList.isEmpty());
+        Assert.assertFalse(testLinkedList.isEmpty());
+
+    }
+
+    /**
+     * Method: get(int index)
+     */
+    @Test
+    public void testGet() throws Exception {
+
+        LinkedList<String> testLinkedList = new LinkedList<>();
+        for (int i = 0; i < 10; i++) {
+            testLinkedList.add(i + "号");
+        }
+        for (int i = 0; i < 10; i++) {
+            System.out.println("索引为" + i + "处的元素为:" + testLinkedList.get(i));
+            Assert.assertEquals((i + "号"), testLinkedList.get(i));
+        }
+    }
+
+    /**
+     * Method: set(int index, E e)
+     */
+    @Test
+    public void testSet() throws Exception {
+
+        LinkedList<String> testLinkedList = new LinkedList<>();
+        for (int i = 0; i < 10; i++) {
+            testLinkedList.add(i + "号");
+        }
+        System.out.println("原链表:" + testLinkedList);
+        for (int i = 0; i < 10; i++) {
+            String nodeValue = i + "号替补";
+            testLinkedList.set(i, nodeValue);
+            Assert.assertEquals(nodeValue, testLinkedList.get(i));
+        }
+        System.out.println("替换后:" + testLinkedList);
+    }
+
+    /**
+     * Method: contains(E e)
+     */
+    @Test
+    public void testContains() throws Exception {
+
+        LinkedList<String> testLinkedList = new LinkedList<>();
+        for (int i = 0; i < 10; i++) {
+            testLinkedList.add(i + "号");
+        }
+        System.out.println("原链表:" + testLinkedList);
+        for (int i = 0; i < 10; i++) {
+            String containTestValue = i + "号";
+            System.out.println("是否包含【" + containTestValue + "】:" +
+                    testLinkedList.contains(containTestValue));
+            Assert.assertTrue(testLinkedList.contains(containTestValue));
+        }
+
+    }
+
+    /**
+     * Method: clear()
+     */
+    @Test
+    public void testClear() throws Exception {
+
+        LinkedList<String> testLinkedList = new LinkedList<>();
+        for (int i = 0; i < 10; i++) {
+            testLinkedList.add(i + "号");
+        }
+        System.out.println("原链表:" + testLinkedList);
+        testLinkedList.clear();
+        System.out.println("清空后的链表:" + testLinkedList);
+        Assert.assertTrue(testLinkedList.isEmpty());
+    }
+
+    /**
+     * Method: iterator()
+     */
+    @Test
+    public void testIterator() throws Exception {
+
+        LinkedList<String> testLinkedList = new LinkedList<>();
+        for (int i = 0; i < 10; i++) {
+            testLinkedList.add(i + "号");
+        }
+        System.out.println("原链表:" + testLinkedList);
+        Iterator iterator = testLinkedList.iterator();
+        Assert.assertNotNull(iterator);
+        while (iterator.hasNext()) {
+            System.out.println(iterator.next());
+        }
+    }
+
+
+
+    /**
+     * Method: remove()
+     */
+    @Test
+    public void testRemove() throws Exception {
+
+        LinkedList<String> testLinkedList = new LinkedList<>();
+        for (int i = 0; i < 10; i++) {
+            testLinkedList.add(i + "号");
+        }
+        System.out.println("原链表:" + testLinkedList);
+        Iterator iterator = testLinkedList.iterator();
+        while (iterator.hasNext()) {
+            iterator.remove();
+        }
+        System.out.println("删除所有元素后:" + testLinkedList);
+        Assert.assertTrue(testLinkedList.isEmpty());
+
+    }
+
+
+}
diff --git a/group07/20409287/src/test/xdx/homework/first/QueueTest.java b/group07/20409287/src/test/xdx/homework/first/QueueTest.java
new file mode 100644
index 000000000..6e56e3b8b
--- /dev/null
+++ b/group07/20409287/src/test/xdx/homework/first/QueueTest.java
@@ -0,0 +1,141 @@
+package xdx.homework.first;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.Before;
+import org.junit.After;
+import xdx.homework.first.Queue;
+
+/**
+ * Queue Tester.
+ *
+ * @author <Authors name>
+ * @since <pre>二月 25, 2017</pre>
+ * @version 1.0
+ */
+public class QueueTest {
+
+    private Queue<String> defaultQueue;
+
+    @Before
+    public void before() throws Exception {
+
+        defaultQueue = new Queue<>();
+        defaultQueue.enQueue("赵");
+        defaultQueue.enQueue("钱");
+        defaultQueue.enQueue("孙");
+        defaultQueue.enQueue("李");
+        defaultQueue.enQueue("周");
+        defaultQueue.enQueue("吴");
+        defaultQueue.enQueue("郑");
+        defaultQueue.enQueue("王");
+    }
+
+    @After
+    public void after() throws Exception {
+    }
+
+    /**
+     *
+     * Method: enQueue(E data)
+     *
+     */
+    @Test
+    public void testEnQueue() throws Exception {
+
+        Queue<String> testQueue = new Queue<>();
+        testQueue.enQueue("刘备");
+        testQueue.enQueue("关羽");
+        testQueue.enQueue("张飞");
+        System.out.println(testQueue);
+    }
+
+    /**
+     *
+     * Method: deQueue()
+     *
+     */
+    @Test
+    public void testDeQueue() throws Exception {
+
+        Queue<String> testQueue = new Queue<>();
+        testQueue.enQueue("刘备");
+        testQueue.enQueue("关羽");
+        testQueue.enQueue("张飞");
+        System.out.println("删除前:" + testQueue);
+        System.out.println("删除:" + testQueue.deQueue());
+        System.out.println("删除后:" + testQueue);
+    }
+
+    /**
+     *
+     * Method: length()
+     *
+     */
+    @Test
+    public void testLength() throws Exception {
+        Assert.assertEquals(8, defaultQueue.length());
+        System.out.println("defaultQueue长度:" + defaultQueue.length());
+    }
+
+    /**
+     *
+     * Method: isEmpty()
+     *
+     */
+    @Test
+    public void testIsEmpty() throws Exception {
+        Assert.assertTrue(!defaultQueue.isEmpty());
+    }
+
+    /**
+     *
+     * Method: clear()
+     *
+     */
+    @Test
+    public void testClear() throws Exception {
+
+        Queue<String> testQueue = new Queue<>();
+        testQueue.enQueue("刘备");
+        testQueue.enQueue("关羽");
+        testQueue.enQueue("张飞");
+
+        testQueue.clear();
+        Assert.assertTrue(testQueue.isEmpty());
+    }
+
+    /**
+     *
+     * Method: getFront()
+     *
+     */
+    @Test
+    public void testGetFront() throws Exception {
+        Assert.assertEquals("赵", defaultQueue.getFront());
+        Assert.assertNotEquals("钱", defaultQueue.getFront());
+    }
+
+    /**
+     *
+     * Method: getRear()
+     *
+     */
+    @Test
+    public void testGetRear() throws Exception {
+        Assert.assertEquals("王", defaultQueue.getRear());
+        Assert.assertNotEquals("钱", defaultQueue.getFront());
+    }
+
+    /**
+     *
+     * Method: toString()
+     *
+     */
+    @Test
+    public void testToString() throws Exception {
+        System.out.println("defaultQueue内容:" + defaultQueue.toString());
+    }
+
+
+}
diff --git a/group07/20409287/src/test/xdx/homework/first/StackTest.java b/group07/20409287/src/test/xdx/homework/first/StackTest.java
new file mode 100644
index 000000000..bfc6b2c8f
--- /dev/null
+++ b/group07/20409287/src/test/xdx/homework/first/StackTest.java
@@ -0,0 +1,126 @@
+package test.xdx.homework.first;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.Before;
+import org.junit.After;
+import xdx.homework.first.Stack;
+
+/**
+ * Stack Tester.
+ *
+ * @version 1.0
+ */
+public class StackTest {
+
+    private Stack<String> defaultStack;
+
+    @Before
+    public void before() throws Exception {
+
+        defaultStack = new Stack<>();
+        defaultStack.push("孙悟空");
+        defaultStack.push("唐僧");
+        defaultStack.push("猪八戒");
+        defaultStack.push("沙僧");
+    }
+
+    @After
+    public void after() throws Exception {
+    }
+
+    /**
+     *
+     * Method: push(E e)
+     *
+     */
+    @Test
+    public void testPush() throws Exception {
+
+        Stack<String> testStack = new Stack<>();
+        testStack.push("java");
+        testStack.push("C++");
+        testStack.push("python");
+        System.out.println(testStack);
+    }
+
+    /**
+     *
+     * Method: pop()
+     *
+     */
+    @Test
+    public void testPop() throws Exception {
+
+        Stack<String> testStack = new Stack<>();
+        testStack.push("java");
+        testStack.push("C++");
+        testStack.push("python");
+        System.out.println(testStack);
+        Assert.assertEquals("python", testStack.pop());
+        Assert.assertEquals("C++", testStack.pop());
+        Assert.assertEquals("java", testStack.pop());
+
+    }
+
+    /**
+     *
+     * Method: isEmpty()
+     *
+     */
+    @Test
+    public void testIsEmpty() throws Exception {
+
+        Stack<String> testStack = new Stack<>();
+        testStack.push("java");
+        testStack.push("C++");
+        testStack.push("python");
+        System.out.println(testStack);
+        Assert.assertEquals("python", testStack.pop());
+        Assert.assertEquals("C++", testStack.pop());
+        Assert.assertEquals("java", testStack.pop());
+        Assert.assertTrue(testStack.isEmpty());
+    }
+
+    /**
+     *
+     * Method: peek()
+     *
+     */
+    @Test
+    public void testPeek() throws Exception {
+        Assert.assertEquals("沙僧", defaultStack.peek());
+    }
+
+    /**
+     *
+     * Method: size()
+     *
+     */
+    @Test
+    public void testSize() throws Exception {
+        Assert.assertEquals(4, defaultStack.size());
+    }
+
+    /**
+     *
+     * Method: clear()
+     *
+     */
+    @Test
+    public void testClear() throws Exception {
+
+        Stack<String> testStack = new Stack<>();
+        testStack.push("java");
+        testStack.push("C++");
+        testStack.push("python");
+        System.out.println("清空前:" + testStack);
+        testStack.clear();
+        System.out.println("清空后:" + testStack);
+        Assert.assertTrue(testStack.isEmpty());
+
+
+    }
+
+
+}
diff --git a/group07/396868934/DataStructure/.classpath b/group07/396868934/DataStructure/.classpath
new file mode 100644
index 000000000..373dce400
--- /dev/null
+++ b/group07/396868934/DataStructure/.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/group07/396868934/DataStructure/.project b/group07/396868934/DataStructure/.project
new file mode 100644
index 000000000..72a951f7c
--- /dev/null
+++ b/group07/396868934/DataStructure/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>DataStructure</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/group07/396868934/DataStructure/.settings/org.eclipse.jdt.core.prefs b/group07/396868934/DataStructure/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..3a2153707
--- /dev/null
+++ b/group07/396868934/DataStructure/.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/group07/396868934/DataStructure/bin/.gitignore b/group07/396868934/DataStructure/bin/.gitignore
new file mode 100644
index 000000000..c2d9872a1
--- /dev/null
+++ b/group07/396868934/DataStructure/bin/.gitignore
@@ -0,0 +1 @@
+/com/
diff --git a/group07/396868934/DataStructure/src/com/louisly/java/LYArrayLink.java b/group07/396868934/DataStructure/src/com/louisly/java/LYArrayLink.java
new file mode 100644
index 000000000..450a1ccff
--- /dev/null
+++ b/group07/396868934/DataStructure/src/com/louisly/java/LYArrayLink.java
@@ -0,0 +1,93 @@
+package com.louisly.java;
+
+public class LYArrayLink {
+
+	private int currentCount = 0;
+	private LYNode header = null;
+	private LYNode lastNode = null;
+	public void addObject(Object obj) {
+		if (obj == null) return;
+		
+		currentCount++;
+		LYNode node = new LYNode();
+		node.data = obj;
+		
+		if (lastNode != null) {
+			lastNode.next = node;
+			lastNode = node;
+		} else {
+			lastNode = node;
+		}
+		
+		if (header == null) {
+			header = node;
+		}
+	}
+	
+	public void removeObject(Object obj) {
+		LYNode lastNode = null;
+		LYNode node = header; 
+		Object data = null;
+		while (node != null) {
+			data = node.data;
+			if (data == obj) {
+				if (lastNode != null) {
+					lastNode.next = node.next;
+				} else {
+					// �Ƴ���һ��Ԫ��
+					header = node.next;
+				}
+				
+				currentCount--;
+			} else {
+				lastNode = node;
+			}
+			node = node.next;
+		}
+	}
+	
+	public void removeAtIndex(int index) {
+		if (header == null) return; // error: out of bounces
+		
+		LYNode lastNode = null;
+		LYNode node = header; 
+		
+		for (int i = 0; i < index; i++) {
+			if (node != null) {
+				lastNode = node;
+				node = node.next;
+			} else {
+				return; // error: out of bounces
+			}
+		}
+		
+		if (index == 0) {
+			header = node.next;
+		} else {
+			lastNode.next = node.next;
+		}
+		currentCount--;
+	}
+	
+	public Object get(int index) {
+		if (header == null) return null; // error: out of bounces
+		LYNode node = header;
+		for (int i = 0; i < index; i++) {
+			node = node.next;
+			if (node == null) {
+				return null;
+			}
+		}
+		return node.data;
+	}
+	
+	public int size() {
+		return currentCount;
+	}
+	
+	private static class LYNode {
+		Object data;
+		LYNode next;
+		
+	}
+}
diff --git a/group07/396868934/DataStructure/src/com/louisly/java/LYArrayList.java b/group07/396868934/DataStructure/src/com/louisly/java/LYArrayList.java
new file mode 100644
index 000000000..0076cddad
--- /dev/null
+++ b/group07/396868934/DataStructure/src/com/louisly/java/LYArrayList.java
@@ -0,0 +1,96 @@
+package com.louisly.java;
+import com.louisly.java.LYIterator;
+
+public class LYArrayList {
+	private Object[] elementData = new Object[10];
+	private int currentCount = 0;
+	public void addObject(Object obj) {
+		if (currentCount >= elementData.length) {
+			grow();
+		}
+		elementData[currentCount] = obj;
+		currentCount++;
+	}
+	
+	public boolean removeObject(Object obj) {
+		boolean existObj = false;
+		int removeIndex = -1;
+		int index = currentCount;
+		for (int i = 0; i < index; i++) {
+			Object element = elementData[i];
+			boolean remove = false;
+			if (element != null && element.equals(obj)) {
+				elementData[i] = null;
+				existObj = true;
+				remove = true;
+				// �Է�����һ���ĵڶ���Ԫ��
+				if (removeIndex == -1) {
+					removeIndex = i;
+				}
+				currentCount--;
+			}
+			// ��Ԫ����ǰ�ƶ�
+			if (!remove) {
+				elementData[removeIndex] = element;
+				elementData[i] = null;
+				removeIndex++;
+			}
+		}
+		return existObj;
+	}
+	
+	public boolean removeAtIndex(int index) {
+		if (index > currentCount) {
+			return false;
+		}
+		elementData[index] = null;
+		
+		for (int i = index+1; i < currentCount; i++) {
+			elementData[i-1] = elementData[i];
+			elementData[i] = null;
+		}
+		currentCount--;
+		return true;
+	}
+	
+	public void grow() {
+		Object[] target = new Object[elementData.length*2];
+		System.arraycopy(elementData, 0, target, 0, elementData.length);
+		elementData = target;
+	}
+	
+	public Object get(int index) {
+		if (index > currentCount) {
+			return null;
+		}
+		return elementData[index];
+	}
+	
+	public int size() {
+		return currentCount;
+	}
+	
+	public LYIterator iterator() {
+		return new LYArrayListIterator(this);
+	}
+	private class LYArrayListIterator implements LYIterator {
+		LYArrayList arrayList = null;
+		int position = 0;
+		public LYArrayListIterator(LYArrayList arrayList) {
+			this.arrayList = arrayList;
+		}
+		
+		@Override
+		public boolean hasNext() {
+			
+			return false;
+		}
+		@Override
+		public Object next() {
+			return elementData[position];
+		}
+		public void remove() {
+			
+		}
+	}
+}
diff --git a/group07/396868934/DataStructure/src/com/louisly/java/LYArrayListTest.java b/group07/396868934/DataStructure/src/com/louisly/java/LYArrayListTest.java
new file mode 100644
index 000000000..a45721186
--- /dev/null
+++ b/group07/396868934/DataStructure/src/com/louisly/java/LYArrayListTest.java
@@ -0,0 +1,50 @@
+package com.louisly.java;
+
+import static org.junit.Assert.*;
+
+import java.util.ArrayList;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import junit.framework.Assert;
+
+public class LYArrayListTest {
+
+	@Before
+	public void setUp() throws Exception {
+	}
+
+	@After
+	public void tearDown() throws Exception {
+	}
+
+	@Test
+	public void testAddObject() {
+		LYArrayList list = new LYArrayList();
+		list.addObject(new Integer(10));
+		Assert.assertEquals(10, ((Integer)list.get(0)).intValue());
+	}
+
+	@Test
+	public void testRemoveObject() {
+		fail("Not yet implemented");
+	}
+
+	@Test
+	public void testRemoveAtIndex() {
+		fail("Not yet implemented");
+	}
+
+	@Test
+	public void testGet() {
+		fail("Not yet implemented");
+	}
+
+	@Test
+	public void testSize() {
+		fail("Not yet implemented");
+	}
+
+}
diff --git a/group07/396868934/DataStructure/src/com/louisly/java/LYBinaryTree.java b/group07/396868934/DataStructure/src/com/louisly/java/LYBinaryTree.java
new file mode 100644
index 000000000..4ea314113
--- /dev/null
+++ b/group07/396868934/DataStructure/src/com/louisly/java/LYBinaryTree.java
@@ -0,0 +1,45 @@
+package com.louisly.java;
+import com.louisly.java.LYObject;
+
+public class LYBinaryTree {
+
+	private LYBinaryTreeNode headerNode;
+	
+	public void addObject(LYObject obj) {
+		
+		if (headerNode == null) {
+			LYBinaryTreeNode node = new LYBinaryTreeNode();
+			node.data = obj;
+			headerNode = node;
+			return;
+		}
+		
+		this.appendObject(headerNode, obj);
+	}
+	
+	private void appendObject(LYBinaryTreeNode toNode, LYObject obj) {
+		if (obj.i > toNode.data.i) {
+			if (toNode.right != null) {
+				this.appendObject(toNode.right, obj);
+			} else {
+				LYBinaryTreeNode node = new LYBinaryTreeNode();
+				node.data = obj;
+				toNode.right = node;
+			}
+		} else {
+			if (toNode.left != null) {
+				this.appendObject(toNode.left, obj);
+			} else {
+				LYBinaryTreeNode node = new LYBinaryTreeNode();
+				node.data = obj;
+				toNode.left = node;
+			}
+		}
+	}
+	
+	public static class LYBinaryTreeNode {
+		private LYObject data;
+		private LYBinaryTreeNode left;
+		private LYBinaryTreeNode right;
+	}
+}
diff --git a/group07/396868934/DataStructure/src/com/louisly/java/LYIterator.java b/group07/396868934/DataStructure/src/com/louisly/java/LYIterator.java
new file mode 100644
index 000000000..c2ae34c87
--- /dev/null
+++ b/group07/396868934/DataStructure/src/com/louisly/java/LYIterator.java
@@ -0,0 +1,6 @@
+package com.louisly.java;
+
+public interface LYIterator {
+	public boolean hasNext();
+	public Object next();
+}
diff --git a/group07/396868934/DataStructure/src/com/louisly/java/LYObject.java b/group07/396868934/DataStructure/src/com/louisly/java/LYObject.java
new file mode 100644
index 000000000..f0f5aa5d8
--- /dev/null
+++ b/group07/396868934/DataStructure/src/com/louisly/java/LYObject.java
@@ -0,0 +1,8 @@
+package com.louisly.java;
+
+public class LYObject extends Object {
+	int i = 0;
+	public LYObject(int i) {
+		this.i = i;
+	}
+}
diff --git a/group07/396868934/DataStructure/src/com/louisly/java/LYQueue.java b/group07/396868934/DataStructure/src/com/louisly/java/LYQueue.java
new file mode 100644
index 000000000..5f573ae0a
--- /dev/null
+++ b/group07/396868934/DataStructure/src/com/louisly/java/LYQueue.java
@@ -0,0 +1,28 @@
+package com.louisly.java;
+import com.louisly.java.LYArrayList;
+
+public class LYQueue {
+	LYArrayList list = null;
+	public LYQueue() {
+		list = new LYArrayList();
+	}
+	
+	public void enQueue(Object obj) {
+		list.addObject(obj);
+	}
+	
+	public Object deQueue() {
+		if (list.size() != 0) {
+			return list.get(0);
+		}
+		return null;
+	}
+	
+	public boolean isEmpty() {
+		return list.size() == 0;
+	}
+	
+	public int size() {
+		return list.size();
+	}
+}
diff --git a/group07/396868934/DataStructure/src/com/louisly/java/LYStack.java b/group07/396868934/DataStructure/src/com/louisly/java/LYStack.java
new file mode 100644
index 000000000..c61520804
--- /dev/null
+++ b/group07/396868934/DataStructure/src/com/louisly/java/LYStack.java
@@ -0,0 +1,34 @@
+package com.louisly.java;
+import com.louisly.java.LYArrayList;
+
+public class LYStack {
+	private LYArrayList list = new LYArrayList();
+//	public LYStack() {
+//		list = new LYArrayList();
+//	}
+	
+	public void push(Object obj) {
+		list.addObject(obj);
+	}
+	
+	public Object pop() {
+		if (list.size() == 0) return null;
+		Object obj = list.get(list.size()-1);
+		list.removeObject(obj);
+		return obj;
+	}
+	
+	public Object peak() {
+		if (list.size() == 0) return null;
+		Object obj = list.get(list.size()-1);
+		return obj;
+	}
+	
+	public boolean isEmpty() {
+		return list.size() == 0;
+	}
+	
+	public int size() {
+		return list.size();
+	}
+}
diff --git a/group07/396868934/DataStructure/src/com/louisly/java/main.java b/group07/396868934/DataStructure/src/com/louisly/java/main.java
new file mode 100644
index 000000000..c613c2f36
--- /dev/null
+++ b/group07/396868934/DataStructure/src/com/louisly/java/main.java
@@ -0,0 +1,84 @@
+package com.louisly.java;
+import com.louisly.java.LYArrayList;
+import com.louisly.java.LYObject;
+import com.louisly.java.LYArrayLink;
+import com.louisly.java.LYBinaryTree;
+
+public class main {
+
+	public static void main(String[] args) {
+		
+//		testBinaryTree();
+		testArrayLink();
+//		testArrayList();
+	}
+	
+	public static void testBinaryTree() {
+		LYBinaryTree tree = new LYBinaryTree();
+		tree.addObject(new LYObject(5));
+		tree.addObject(new LYObject(7));
+		tree.addObject(new LYObject(2));
+		tree.addObject(new LYObject(1));
+		tree.addObject(new LYObject(6));
+		tree.addObject(new LYObject(4));
+		tree.addObject(new LYObject(8));
+	}
+	
+	public static void testArrayLink() {
+		// ����20��Ԫ��
+		LYArrayLink list = new LYArrayLink();
+		for (int i = 0; i < 20; i++) {
+			LYObject object = new LYObject(i);
+			list.addObject(object);
+		}
+		
+		System.out.print("��ǰ�����й���Ԫ�ظ�����" + list.size() + "\n");
+		
+		// ��ӡĿǰ���ڵ�ÿ��Ԫ��
+		for (int i = 0; i < list.size(); i++) {
+			LYObject obj = (LYObject)list.get(i);
+			System.out.print(obj.i + "\n");
+		}
+		
+		System.out.print("======\n");
+		
+		// �Ƴ����߸�Ԫ��
+		list.removeAtIndex(7);
+		
+		System.out.print("��ǰ�����й���Ԫ�ظ�����" + list.size() + "\n");
+		
+		// �ٴ�ӡĿǰ��ʣ����ЩԪ��
+		for (int i = 0; i < list.size(); i++) {
+			LYObject obj = (LYObject)list.get(i);
+			System.out.print(obj.i + "\n");
+		}
+	}
+	
+	public static void testArrayList() {
+		// ����20��Ԫ��
+		LYArrayList list = new LYArrayList();
+		for (int i = 0; i < 20; i++) {
+			LYObject object = new LYObject(i);
+			list.addObject(object);
+		}
+		
+		System.out.print("��ǰ�����й���Ԫ�ظ�����" + list.size() + "\n");
+		
+		for (int i = 0; i < list.size(); i++) {
+			LYObject obj = (LYObject)list.get(i);
+			System.out.print(obj.i + "\n");
+		}
+		
+		System.out.print("======\n");
+		
+		
+		list.removeAtIndex(7);
+		System.out.print("��ǰ�����й���Ԫ�ظ�����" + list.size() + "\n");
+		
+		for (int i = 0; i < list.size(); i++) {
+			LYObject obj = (LYObject)list.get(i);
+			System.out.print(obj.i + "\n");
+		}
+	}
+
+}
diff --git a/group07/43819473/homework/pom.xml b/group07/43819473/homework/pom.xml
new file mode 100644
index 000000000..b4c8775d1
--- /dev/null
+++ b/group07/43819473/homework/pom.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>homework1</groupId>
+    <artifactId>homework</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <dependencies>
+        <!-- https://mvnrepository.com/artifact/junit/junit -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.12</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.7</version>
+        </dependency>
+
+    </dependencies>
+</project>
\ No newline at end of file
diff --git a/group07/43819473/homework/src/main/java/dataStructure/ArrayList.java b/group07/43819473/homework/src/main/java/dataStructure/ArrayList.java
new file mode 100644
index 000000000..40ccb13a0
--- /dev/null
+++ b/group07/43819473/homework/src/main/java/dataStructure/ArrayList.java
@@ -0,0 +1,87 @@
+package dataStructure;
+
+/**
+ * Created by zj on 2017/2/20.
+ */
+public class ArrayList implements List {
+
+	private int size = 0;
+
+	private Object[] elementData = new Object[100];
+
+	public void add(Object o) {
+		if (size > elementData.length / 2) {
+			elementData = grow(elementData);
+		}
+
+		elementData[size] = o;
+		size++;
+	}
+
+	private Object[] grow(Object[] datas) {
+		Object[] elementDataNew = new Object[elementData.length + elementData.length / 4];
+		System.arraycopy(datas, 0, elementDataNew, 0, size);
+		return elementDataNew;
+	}
+
+	public void add(int index, Object o) {
+
+		if (index <0 || index > size - 1) {
+			throw new IndexOutOfBoundsException("index out of bound");
+		}
+
+		if (size > elementData.length / 2) {
+			elementData = grow(elementData);
+		}
+
+		for (int i = size - 1; i >= index; i--) {
+			elementData[i + 1] = elementData[i];
+		}
+		elementData[index] = o;
+		size++;
+	}
+
+	public Object get(int index) {
+		if (index <0 || index > size - 1) {
+			throw new IndexOutOfBoundsException("index out of bound");
+		}
+		return elementData[index];
+	}
+
+	public Object remove(int index) {
+		if (index <0 || index > size - 1) {
+			throw new IndexOutOfBoundsException("index out of bound");
+		}
+
+		for (int i = index; i <= size - 1; i++) {
+			elementData[i] = elementData[i + 1];
+		}
+		elementData[size - 1] = null;
+		size--;
+		return null;
+	}
+
+	public int size() {
+		return size;
+	}
+
+	public Iterator iterator() {
+		return new ArrayListInterator();
+	}
+
+	private class ArrayListInterator implements Iterator {
+
+		private int nowIndex = 0;
+
+		public boolean hasNext() {
+			if (nowIndex <= size - 1) {
+				return true;
+			}
+			return false;
+		}
+
+		public Object next() {
+			return elementData[nowIndex++];
+		}
+	}
+}
diff --git a/group07/43819473/homework/src/main/java/dataStructure/BinaryTree.java b/group07/43819473/homework/src/main/java/dataStructure/BinaryTree.java
new file mode 100644
index 000000000..a93c25253
--- /dev/null
+++ b/group07/43819473/homework/src/main/java/dataStructure/BinaryTree.java
@@ -0,0 +1,73 @@
+package dataStructure;
+
+public class BinaryTree {
+
+    private BinaryTreeNode root;
+
+    public BinaryTreeNode getRoot() {
+        return root;
+    }
+
+    public void setRoot(BinaryTreeNode root) {
+        this.root = root;
+    }
+
+    public BinaryTreeNode insert(int data) {
+        BinaryTreeNode node = new BinaryTreeNode(data);
+        root = insert(root, node);
+        return root;
+    }
+
+    private BinaryTreeNode insert(BinaryTreeNode root, BinaryTreeNode newNode) {
+        if (root == null) {
+            root = newNode;
+        } else if (newNode.data > root.data) {
+            root.right = insert(root.right, newNode);
+        } else {
+            root.left = insert(root.left, newNode);
+        }
+        return root;
+    }
+
+    /**
+     * binary tree node
+     */
+    private class BinaryTreeNode {
+
+        private int data;
+        private BinaryTreeNode left;
+        private BinaryTreeNode right;
+
+        public BinaryTreeNode(int data) {
+            this.left = null;
+            this.right = null;
+            this.data = data;
+        }
+
+        public int getData() {
+            return data;
+        }
+
+        public void setData(int 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;
+        }
+
+    }
+}
+
diff --git a/group07/43819473/homework/src/main/java/dataStructure/Iterator.java b/group07/43819473/homework/src/main/java/dataStructure/Iterator.java
new file mode 100644
index 000000000..06ad99316
--- /dev/null
+++ b/group07/43819473/homework/src/main/java/dataStructure/Iterator.java
@@ -0,0 +1,9 @@
+package dataStructure;
+
+/**
+ * Created by zj on 2017/2/20.
+ */
+public interface Iterator {
+    public boolean hasNext();
+    public Object next();
+}
\ No newline at end of file
diff --git a/group07/43819473/homework/src/main/java/dataStructure/LinkedList.java b/group07/43819473/homework/src/main/java/dataStructure/LinkedList.java
new file mode 100644
index 000000000..f6a960698
--- /dev/null
+++ b/group07/43819473/homework/src/main/java/dataStructure/LinkedList.java
@@ -0,0 +1,116 @@
+package dataStructure;
+
+/**
+ * Created by LvZhenxing on 2017/2/21.
+ */
+public class LinkedList implements List {
+
+	private Node head=new Node();
+	private int size = 0;
+
+	public void add(Object o) {
+		addToNode(head,o);
+		size++;
+	}
+
+	public void add(int index, Object o) {
+		if (index <0 || index > size) {
+			throw new IndexOutOfBoundsException("index out of bound");
+		}
+
+		addToNode(getLastNode(index),o);
+		size++;
+	}
+
+	private Node getLastNode(int index){
+
+		Node nowNode = head;
+		for (int pos = 1; pos <= index; pos++) {
+			nowNode = nowNode.next;
+		}
+		return nowNode;
+	}
+	private void addToNode(Node node,Object o){
+		if (node.next == null) {
+			Node newNode = new Node();
+			newNode.data = o;
+			node.next = newNode;
+		} else {
+			Node newNode = new Node();
+			newNode.data = o;
+			newNode.next = node.next;
+			node.next = newNode;
+		}
+	}
+
+	public Object get(int index) {
+		if (index <0 || index > size - 1) {
+			throw new IndexOutOfBoundsException("index out of bound");
+		}
+
+		Node node= getLastNode(index);
+		return node.next==null?null:node.next.data;
+	}
+
+	public Object remove(int index) {
+		if (index <0 || index > size - 1) {
+			throw new IndexOutOfBoundsException("index out of bound");
+		}
+
+		Node node= getLastNode(index);
+		Node nowNode=node.next;
+		if(nowNode.next!=null){
+			node.next=node.next.next;
+		}else{
+			node.next=null;
+		}
+		size--;
+		return nowNode.data;
+	}
+
+	public int size() {
+		return size;
+	}
+
+	public void addFirst(Object o) {
+		add(0,o);
+	}
+
+	public void addLast(Object o) {
+		add(size,o);
+	}
+
+	public Object removeFirst() {
+		return remove(0);
+	}
+
+	public Object removeLast() {
+		return remove(size-1);
+	}
+
+	public Iterator iterator() {
+		return new LinkedListInterator();
+	}
+
+	private class LinkedListInterator implements Iterator {
+
+		private int nowIndex = 0;
+
+		public boolean hasNext() {
+			if (nowIndex <= size - 1) {
+				return true;
+			}
+			return false;
+		}
+
+		public Object next() {
+			return get(nowIndex++);
+		}
+	}
+
+
+	private static class Node {
+		Object data;
+		Node next;
+	}
+}
diff --git a/group07/43819473/homework/src/main/java/dataStructure/List.java b/group07/43819473/homework/src/main/java/dataStructure/List.java
new file mode 100644
index 000000000..0b1b43fc2
--- /dev/null
+++ b/group07/43819473/homework/src/main/java/dataStructure/List.java
@@ -0,0 +1,16 @@
+package dataStructure;
+
+/**
+ * Created by zj on 2017/2/20.
+ */
+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();
+}
\ No newline at end of file
diff --git a/group07/43819473/homework/src/main/java/dataStructure/Queue.java b/group07/43819473/homework/src/main/java/dataStructure/Queue.java
new file mode 100644
index 000000000..943e0e64f
--- /dev/null
+++ b/group07/43819473/homework/src/main/java/dataStructure/Queue.java
@@ -0,0 +1,25 @@
+package dataStructure;
+
+/**
+ * Created by LvZhenxing on 2017/2/22.
+ */
+public class Queue {
+
+	private LinkedList list=new LinkedList();
+
+	public void enQueue(Object o) {
+		list.addFirst(o);
+	}
+
+	public Object deQueue() {
+		return list.removeLast();
+	}
+
+	public boolean isEmpty() {
+		return list.size()==0?true:false;
+	}
+
+	public int size() {
+		return list.size();
+	}
+}
diff --git a/group07/43819473/homework/src/main/java/dataStructure/Stack.java b/group07/43819473/homework/src/main/java/dataStructure/Stack.java
new file mode 100644
index 000000000..e1a716131
--- /dev/null
+++ b/group07/43819473/homework/src/main/java/dataStructure/Stack.java
@@ -0,0 +1,29 @@
+package dataStructure;
+
+/**
+ * Created by LvZhenxing on 2017/2/22.
+ */
+public class Stack {
+
+    private LinkedList list = new LinkedList();
+
+    public void push(Object o) {
+        list.addFirst(o);
+    }
+
+    public Object pop() {
+        return list.removeFirst();
+    }
+
+    public Object peek() {
+        return list.get(0);
+    }
+
+    public boolean isEmpty() {
+        return list.size() == 0 ? true : false;
+    }
+
+    public int size() {
+        return list.size();
+    }
+}
diff --git a/group07/43819473/homework/src/test/java/dataStructure/ArrayListTest.java b/group07/43819473/homework/src/test/java/dataStructure/ArrayListTest.java
new file mode 100644
index 000000000..02ea9fbb6
--- /dev/null
+++ b/group07/43819473/homework/src/test/java/dataStructure/ArrayListTest.java
@@ -0,0 +1,79 @@
+package dataStructure;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Created by zj on 2017/2/20.
+ */
+public class ArrayListTest {
+	ArrayList list =null;
+
+
+	@Before
+	public void setUp() throws Exception {
+		list = new ArrayList();
+		for (int i = 0; i < 200; i++) {
+			list.add(i);
+		}
+
+		System.out.println("=============================before==============================");
+		for (int i = 0; i < list.size(); i++) {
+			try {
+				System.out.println("index=" + i + ",data=" + list.get(i) + ",next=" + list.get(i + 1));
+			} catch (Exception e) {
+				System.out.println("index=" + i + ",data=" + list.get(i) + ",next=null");
+			} finally {
+
+			}
+
+		}
+	}
+
+	@After
+	public void tearDown() throws Exception {
+		System.out.println("=============================after==============================");
+		for (int i = 0; i < list.size(); i++) {
+			System.out.print(list.get(i) + ",");
+		}
+	}
+
+	@Test
+	public void add() throws Exception {
+	}
+
+	@Test
+	public void add1() throws Exception {
+		list.add(5, 555);
+		list.add(12, 1255);
+	}
+
+	@Test
+	public void get() throws Exception {
+
+	}
+
+	@Test
+	public void remove() throws Exception {
+		list.remove(3);
+		list.remove(90);
+	}
+
+	@Test
+	public void size() throws Exception {
+	}
+
+	@Test
+	public void iterator() throws Exception {
+
+		Iterator iterator = list.iterator();
+		while (iterator.hasNext()) {
+			System.out.print(iterator.next() + ",");
+		}
+
+		System.out.println();
+		System.out.println("---------------------------");
+	}
+
+}
\ No newline at end of file
diff --git a/group07/43819473/homework/src/test/java/dataStructure/BinaryTreeTest.java b/group07/43819473/homework/src/test/java/dataStructure/BinaryTreeTest.java
new file mode 100644
index 000000000..90698681e
--- /dev/null
+++ b/group07/43819473/homework/src/test/java/dataStructure/BinaryTreeTest.java
@@ -0,0 +1,34 @@
+package dataStructure;
+
+import com.alibaba.fastjson.JSON;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Created by zj on 2017/2/26.
+ */
+public class BinaryTreeTest {
+    @Before
+    public void setUp() throws Exception {
+
+    }
+
+    @After
+    public void tearDown() throws Exception {
+
+    }
+
+    @Test
+    public void insert() throws Exception {
+        BinaryTree tree=new BinaryTree();
+        tree.insert(6);
+        tree.insert(5);
+        tree.insert(8);
+        tree.insert(3);
+        tree.insert(4);
+        System.out.println(JSON.toJSONString(tree.getRoot()));
+    }
+}
\ No newline at end of file
diff --git a/group07/43819473/homework/src/test/java/dataStructure/LinkedListTest.java b/group07/43819473/homework/src/test/java/dataStructure/LinkedListTest.java
new file mode 100644
index 000000000..cc7e2bebc
--- /dev/null
+++ b/group07/43819473/homework/src/test/java/dataStructure/LinkedListTest.java
@@ -0,0 +1,102 @@
+package dataStructure;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Created by LvZhenxing on 2017/2/22.
+ */
+public class LinkedListTest {
+
+	LinkedList list = null;
+
+	@Before
+	public void setUp() throws Exception {
+		list = new LinkedList();
+		for (int i = 0; i < 6; i++) {
+			list.add(i);
+		}
+		System.out.println("=============================before==============================");
+		for (int i = 0; i < list.size(); i++) {
+			try {
+				System.out.println("index=" + i + ",data=" + list.get(i) + ",next=" + list.get(i + 1));
+			} catch (Exception e) {
+				System.out.println("index=" + i + ",data=" + list.get(i) + ",next=null");
+			} finally {
+
+			}
+		}
+	}
+
+	@After
+	public void tearDown() throws Exception {
+		System.out.println("=============================after==============================");
+		for (int i = 0; i < list.size(); i++) {
+			try {
+				System.out.println("index=" + i + ",data=" + list.get(i) + ",next=" + list.get(i + 1));
+			} catch (Exception e) {
+				System.out.println("index=" + i + ",data=" + list.get(i) + ",next=null");
+			} finally {
+
+			}
+
+		}
+	}
+
+	@Test
+	public void testAdd() throws Exception {
+		list.add(300);
+	}
+
+	@Test
+	public void testAdd1() throws Exception {
+		list.add(2, 100);
+	}
+
+	@Test
+	public void testGet() throws Exception {
+
+	}
+
+	@Test
+	public void testRemove() throws Exception {
+		list.remove(3);
+	}
+
+	@Test
+	public void testSize() throws Exception {
+
+	}
+
+	@Test
+	public void testAddFirst() throws Exception {
+		list.addFirst(66);
+	}
+
+	@Test
+	public void testAddLast() throws Exception {
+		list.addLast(77);
+	}
+
+	@Test
+	public void testRemoveFirst() throws Exception {
+		list.removeFirst();
+	}
+
+	@Test
+	public void testRemoveLast() throws Exception {
+		list.removeLast();
+	}
+
+	@Test
+	public void testIterator() throws Exception {
+		Iterator iterator = list.iterator();
+		while (iterator.hasNext()) {
+			System.out.print(iterator.next() + ",");
+		}
+
+		System.out.println();
+		System.out.println("---------------------------");
+	}
+}
\ No newline at end of file
diff --git a/group07/43819473/homework/src/test/java/dataStructure/QueueTest.java b/group07/43819473/homework/src/test/java/dataStructure/QueueTest.java
new file mode 100644
index 000000000..2d11213d4
--- /dev/null
+++ b/group07/43819473/homework/src/test/java/dataStructure/QueueTest.java
@@ -0,0 +1,51 @@
+package dataStructure;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Created by LvZhenxing on 2017/2/22.
+ */
+public class QueueTest {
+
+	Queue list = null;
+
+	@Before
+	public void setUp() throws Exception {
+		list = new Queue();
+		for (int i = 0; i < 5; i++) {
+			list.enQueue(i);
+		}
+	}
+
+	@After
+	public void tearDown() throws Exception {
+		System.out.println("----------------tearDown------------------");
+		int count=list.size();
+		for (int i = 0; i < count; i++) {
+			System.out.println("list.deQueue():"+list.deQueue());
+		}
+	}
+
+	@Test
+	public void testEnQueue() throws Exception {
+		list.enQueue(11);
+	}
+
+	@Test
+	public void testDeQueue() throws Exception {
+		System.out.println("list.deQueue():"+list.deQueue());
+		System.out.println("list.deQueue():"+list.deQueue());
+	}
+
+	@Test
+	public void testIsEmpty() throws Exception {
+		System.out.println("testIsEmpty:"+list.isEmpty());
+	}
+
+	@Test
+	public void testSize() throws Exception {
+		System.out.println("testSize:"+list.size());
+	}
+}
\ No newline at end of file
diff --git a/group07/43819473/homework/src/test/java/dataStructure/StackTest.java b/group07/43819473/homework/src/test/java/dataStructure/StackTest.java
new file mode 100644
index 000000000..016bdb581
--- /dev/null
+++ b/group07/43819473/homework/src/test/java/dataStructure/StackTest.java
@@ -0,0 +1,56 @@
+package dataStructure;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Created by zj on 2017/2/24.
+ */
+public class StackTest {
+    Stack list = null;
+
+    @Before
+    public void setUp() throws Exception {
+        list = new Stack();
+        for (int i = 0; i < 5; i++) {
+            list.push(i);
+        }
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        System.out.println("----------------tearDown------------------");
+        int count=list.size();
+        for (int i = 0; i < count; i++) {
+            System.out.println("list.pop():"+list.pop());
+        }
+    }
+
+    @Test
+    public void push() throws Exception {
+        list.push(11);
+    }
+
+    @Test
+    public void pop() throws Exception {
+        System.out.println("list.pop():"+list.pop());
+        System.out.println("list.pop():"+list.pop());
+    }
+
+    @Test
+    public void peek() throws Exception {
+        System.out.println("list.peek():"+list.peek());
+    }
+
+    @Test
+    public void testIsEmpty() throws Exception {
+        System.out.println("testIsEmpty:"+list.isEmpty());
+    }
+
+    @Test
+    public void testSize() throws Exception {
+        System.out.println("testSize:"+list.size());
+    }
+
+}
\ No newline at end of file
diff --git a/group07/476770768/MyDataStructure/.classpath b/group07/476770768/MyDataStructure/.classpath
index 63b7e892d..b38771420 100644
--- a/group07/476770768/MyDataStructure/.classpath
+++ b/group07/476770768/MyDataStructure/.classpath
@@ -2,5 +2,6 @@
 <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/group07/476770768/MyDataStructure/src/com/coding/basic/MyArrayList.java b/group07/476770768/MyDataStructure/src/com/coding/basic/MyArrayList.java
index f0c1b3608..5c8c3bb85 100644
--- a/group07/476770768/MyDataStructure/src/com/coding/basic/MyArrayList.java
+++ b/group07/476770768/MyDataStructure/src/com/coding/basic/MyArrayList.java
@@ -89,7 +89,7 @@ public boolean isFull(){
 	}
 	
 	public void checkBounds(int index){
-		if(index >= size || index < 0){
+		if(index > size || index < 0){
 			//System.out.println("From MyArrayList: Index out of bounds");
 			throw new IndexOutOfBoundsException(OutOfBoundsMsg(index));
 		}
diff --git a/group07/476770768/MyDataStructure/src/com/coding/basic/MyArrayListTest.java b/group07/476770768/MyDataStructure/src/com/coding/basic/MyArrayListTest.java
new file mode 100644
index 000000000..c7d929993
--- /dev/null
+++ b/group07/476770768/MyDataStructure/src/com/coding/basic/MyArrayListTest.java
@@ -0,0 +1,69 @@
+package com.coding.basic;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class MyArrayListTest {
+
+
+	@Test
+	public void testAddObject() {
+		MyArrayList mal = new MyArrayList();
+		assertEquals(0, mal.size());
+		mal.add(new Integer(1));
+		assertEquals(1, mal.size());
+	}
+
+	@Test
+	public void testAddIntObject() {
+		MyArrayList mal = new MyArrayList();
+		mal.add(0, new Integer(1));
+		assertEquals(1, mal.size());
+		int tmp = 0;
+		try {
+			mal.add(4, new Integer(4));
+		} catch (IndexOutOfBoundsException e) {
+			tmp = 1;
+			assertEquals(tmp, 1);
+		}
+		
+	}
+
+	@Test
+	public void testGet() {
+		MyArrayList mal = new MyArrayList();
+		mal.add(new Integer(1));
+		assertEquals((Integer)mal.get(0),new Integer(1));
+		int tmp = 0;
+		try {
+			mal.get(4);
+		} catch (IndexOutOfBoundsException e) {
+			tmp = 1;
+			assertEquals(tmp, 1);
+		}
+	}
+
+	@Test
+	public void testRemove() {
+		MyArrayList mal = new MyArrayList();
+		mal.add(new Integer(1));
+		assertEquals((Integer)mal.get(0),new Integer(1));
+		assertEquals(mal.size(),1);
+	}
+
+	@Test
+	public void testSize() {
+		MyArrayList mal = new MyArrayList();
+		assertEquals(0, mal.size());
+	}
+
+	@Test
+	public void testIsEmpty() {
+		MyArrayList mal = new MyArrayList();
+		assertTrue(mal.isEmpty());
+		mal.add(new Integer(1));
+		assertFalse(mal.isEmpty());
+	}
+
+}
diff --git a/group07/476770768/MyDataStructure/src/com/coding/basic/MyLinkedList.java b/group07/476770768/MyDataStructure/src/com/coding/basic/MyLinkedList.java
index 297c97a3e..3fe3693b1 100644
--- a/group07/476770768/MyDataStructure/src/com/coding/basic/MyLinkedList.java
+++ b/group07/476770768/MyDataStructure/src/com/coding/basic/MyLinkedList.java
@@ -38,9 +38,13 @@ public void add(int index, Object o) {
 	 */
 	public void addFirst(Object o) {
 		Node tmp = new Node(o);
-		tmp.next = head;
-		head.prov = tmp;
-		head = tmp;
+		if(head == null){
+			head = tmp;
+		}else{
+			tmp.next = head;
+			head.prov = tmp;
+			head = tmp;
+		}
 	}
 
 	/**
@@ -97,7 +101,10 @@ public Object remove(int index) {
 	public Node removeFirst() {
 		Node tmp = head;
 		head = head.next;
-		head.prov = null;
+		if(head != null){
+			head.prov = null;
+		}
+		
 		return tmp;
 	}
 
@@ -199,22 +206,22 @@ public MyIterator iterator() {
 	private class LinkedListIterator implements MyIterator{
 		
 		private MyLinkedList eleIterator;
-		private Node pos;
+		private int pos;
 		
 		private LinkedListIterator(MyLinkedList mll){
 			this.eleIterator = mll;
-			this.pos = eleIterator.get(0);
+			this.pos = 0;
 		}
 		
 		@Override
 		public boolean hasNext() {
-			return pos != null;
+			return pos <= size;
 		}
 
 		@Override
 		public Object next() {
-			Node res = pos;
-			pos = pos.next;
+			Node res = eleIterator.get(pos);
+			pos++;
 			return res;
 		}
 		
diff --git a/group07/476770768/MyDataStructure/src/com/coding/basic/MyLinkedListTest.java b/group07/476770768/MyDataStructure/src/com/coding/basic/MyLinkedListTest.java
new file mode 100644
index 000000000..1da080a16
--- /dev/null
+++ b/group07/476770768/MyDataStructure/src/com/coding/basic/MyLinkedListTest.java
@@ -0,0 +1,67 @@
+package com.coding.basic;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class MyLinkedListTest {
+
+	@Test
+	public void testAddObject() {
+		MyLinkedList mll = new MyLinkedList();
+		assertEquals(0, mll.size());
+		mll.add(new Integer(1));
+		assertEquals(1, mll.size());
+	}
+
+	@Test
+	public void testAddIntObject() {
+		MyLinkedList mll = new MyLinkedList();
+		mll.add(0, new Integer(1));
+		assertEquals(1, mll.size());
+		int tmp = 0;
+		try {
+			mll.add(4, new Integer(4));
+		} catch (IndexOutOfBoundsException e) {
+			tmp = 1;
+			assertEquals(tmp, 1);
+		}
+	}
+
+	@Test
+	public void testGet() {
+		MyLinkedList mll = new MyLinkedList();
+		mll.add(new Object());
+		assertNotNull(mll.get(0));
+		int tmp = 0;
+		try {
+			mll.get(4);
+		} catch (IndexOutOfBoundsException e) {
+			tmp = 1;
+			assertEquals(tmp, 1);
+		}
+	}
+
+	@Test
+	public void testRemove() {
+		MyLinkedList mll = new MyLinkedList();
+		mll.add(new Object());
+		mll.remove(0);
+		assertEquals(mll.size(),0);	
+	}
+
+	@Test
+	public void testSize() {
+		MyLinkedList mll = new MyLinkedList();
+		assertEquals(0, mll.size());	
+	}
+
+	@Test
+	public void testIsEmpty() {
+		MyLinkedList mll = new MyLinkedList();
+		assertTrue(mll.isEmpty());
+		mll.add(new Object());
+		assertFalse(mll.isEmpty());
+	}
+
+}
diff --git a/group07/476770768/MyDataStructure/src/com/coding/basic/MyQueueTest.java b/group07/476770768/MyDataStructure/src/com/coding/basic/MyQueueTest.java
new file mode 100644
index 000000000..3d80a95ee
--- /dev/null
+++ b/group07/476770768/MyDataStructure/src/com/coding/basic/MyQueueTest.java
@@ -0,0 +1,45 @@
+package com.coding.basic;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class MyQueueTest {
+
+	@Test
+	public void testEnQueue() {
+		MyQueue mq = new MyQueue();
+		assertEquals(mq.size(), 0);
+		mq.enQueue(new Object());
+		assertEquals(mq.size(), 1);
+	}
+
+	@Test
+	public void testDeQueue() {
+		MyQueue mq = new MyQueue();
+		int tmp = 0;
+		try {
+			mq.deQueue();
+		} catch (IndexOutOfBoundsException e) {
+			tmp = 1;
+			assertEquals(tmp, 1);
+		}
+		mq.enQueue(new Object());
+		assertNotNull(mq.deQueue());
+	}
+
+	@Test
+	public void testIsEmpty() {
+		MyQueue mq = new MyQueue();
+		assertTrue(mq.isEmpty());
+		mq.enQueue(new Object());
+		assertFalse(mq.isEmpty());
+	}
+
+	@Test
+	public void testSize() {
+		MyQueue mq = new MyQueue();
+		assertEquals(mq.size(), 0);
+	}
+
+}
diff --git a/group07/476770768/MyDataStructure/src/com/coding/basic/MyStack.java b/group07/476770768/MyDataStructure/src/com/coding/basic/MyStack.java
index 3d9e1ef9a..3c5b5a6b6 100644
--- a/group07/476770768/MyDataStructure/src/com/coding/basic/MyStack.java
+++ b/group07/476770768/MyDataStructure/src/com/coding/basic/MyStack.java
@@ -31,7 +31,7 @@ public Object peek(){
 	}
 	
 	public boolean isEmpty(){
-		return top >= 0;
+		return top < 0;
 	}
 	
 	public int size(){
diff --git a/group07/476770768/MyDataStructure/src/com/coding/basic/MyStackTest.java b/group07/476770768/MyDataStructure/src/com/coding/basic/MyStackTest.java
new file mode 100644
index 000000000..0722e2d4f
--- /dev/null
+++ b/group07/476770768/MyDataStructure/src/com/coding/basic/MyStackTest.java
@@ -0,0 +1,56 @@
+package com.coding.basic;
+
+import static org.junit.Assert.*;
+
+import java.util.EmptyStackException;
+
+import org.junit.Test;
+
+public class MyStackTest {
+
+	@Test
+	public void testPush() {
+		MyStack ms = new MyStack();
+		assertEquals(0, ms.size());
+		ms.push(new Object());
+		assertEquals(1, ms.size());
+	}
+
+	@Test
+	public void testPop() {
+		MyStack ms = new MyStack();
+		ms.push(new Object());
+		assertNotNull(ms.pop());
+		assertEquals(0, ms.size());
+	}
+
+	@Test
+	public void testPeek() {
+		MyStack ms = new MyStack();
+		int tmp = 0;
+		try {
+			ms.peek();
+		} catch (EmptyStackException e) {
+			tmp = 1;
+			assertEquals(1, tmp);
+		}
+		ms.push(new Object());
+		assertNotNull(ms.peek());
+		assertEquals(1, ms.size());
+	}
+
+	@Test
+	public void testIsEmpty() {
+		MyStack ms = new MyStack();
+		assertTrue(ms.isEmpty());
+		ms.push(new Object());
+		assertFalse(ms.isEmpty());
+	}
+
+	@Test
+	public void testSize() {
+		MyStack ms = new MyStack();
+		assertEquals(0, ms.size());
+	}
+
+}
diff --git a/group07/476770768/MyDataStructure/src/com/coding/basic/testFile.java b/group07/476770768/MyDataStructure/src/com/coding/basic/testFile.java
index 1ccabfc97..e75137744 100644
--- a/group07/476770768/MyDataStructure/src/com/coding/basic/testFile.java
+++ b/group07/476770768/MyDataStructure/src/com/coding/basic/testFile.java
@@ -3,21 +3,6 @@
 public class testFile {
 
 	public static void main(String[] args) {
-		MyLinkedList mll = new MyLinkedList();
-		mll.add(new Integer(5));
-		mll.add(new Integer(2));
-		mll.add(new Integer(3));
-		mll.add(new Integer(4));
-		System.out.println(mll);
-		MyIterator mIt = mll.iterator();
-		while(mIt.hasNext()){
-			System.out.println(mIt.next());
-		}
-		mll.remove(3);
-		System.out.println(mll);
-		
-		
-		
 	}
 
 }
diff --git a/group07/476770768/Week2_HOMEWORK/Coderising/.classpath b/group07/476770768/Week2_HOMEWORK/Coderising/.classpath
new file mode 100644
index 000000000..b38771420
--- /dev/null
+++ b/group07/476770768/Week2_HOMEWORK/Coderising/.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/group07/476770768/Week2_HOMEWORK/Coderising/.gitignore b/group07/476770768/Week2_HOMEWORK/Coderising/.gitignore
new file mode 100644
index 000000000..ae3c17260
--- /dev/null
+++ b/group07/476770768/Week2_HOMEWORK/Coderising/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/group07/476770768/Week2_HOMEWORK/Coderising/.project b/group07/476770768/Week2_HOMEWORK/Coderising/.project
new file mode 100644
index 000000000..9b11b75ef
--- /dev/null
+++ b/group07/476770768/Week2_HOMEWORK/Coderising/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Coderising</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/group07/476770768/Week2_HOMEWORK/Coderising/.settings/org.eclipse.jdt.core.prefs b/group07/476770768/Week2_HOMEWORK/Coderising/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..bb35fa0a8
--- /dev/null
+++ b/group07/476770768/Week2_HOMEWORK/Coderising/.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/group07/476770768/Week2_HOMEWORK/Coderising/src/com/Array/ArrayUtil.java b/group07/476770768/Week2_HOMEWORK/Coderising/src/com/Array/ArrayUtil.java
new file mode 100644
index 000000000..521dbad79
--- /dev/null
+++ b/group07/476770768/Week2_HOMEWORK/Coderising/src/com/Array/ArrayUtil.java
@@ -0,0 +1,227 @@
+package com.Array;
+
+import java.util.Arrays;
+
+public class ArrayUtil {
+
+	/**
+	 * ����һ����������a , �Ը������ֵ�����û� ���磺 a = [7, 9 , 30, 3] , �û���Ϊ [3, 30, 9,7] ��� a =
+	 * [7, 9, 30, 3, 4] , �û���Ϊ [4,3, 30 , 9,7]
+	 * 
+	 * @param origin
+	 * @return
+	 */
+	public void reverseArray(int[] origin) {
+		if (origin == null)
+			return;
+		int head = 0;
+		int tail = origin.length - 1;
+		int tmp;
+		while (head < tail) {
+			tmp = origin[tail];
+			origin[tail] = origin[head];
+			origin[head] = tmp;
+			head++;
+			tail--;
+		}
+	}
+
+	/**
+	 * ���������µ�һ�����飺 int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}
+	 * Ҫ������������ֵΪ0����ȥ��������Ϊ0��ֵ����һ���µ����飬���ɵ�������Ϊ�� {1,3,4,5,6,6,5,4,7,6,7,5}
+	 * 
+	 * @param oldArray
+	 * @return
+	 */
+
+	public int[] removeZero(int[] oldArray) {
+		int nonZeroNum = 0;
+		for (int i = 0; i < oldArray.length; i++) {
+			if (oldArray[i] != 0) {
+				nonZeroNum++;
+			}
+		}
+		int cnt = 0;
+		int[] newArray = new int[nonZeroNum];
+		for (int i = 0; i < oldArray.length; i++) {
+			if (oldArray[i] != 0) {
+				newArray[cnt++] = oldArray[i];
+			}
+		}
+		return newArray;
+	}
+
+	/**
+	 * ���������Ѿ�����õ��������飬 a1��a2 ,  ����һ���µ�����a3, ʹ��a3 ����a1��a2 ������Ԫ�أ� ������Ȼ�������
+	 * ���� a1 = [3, 5, 7,8]   a2 = [4, 5, 6,7]    �� a3 Ϊ[3,4,5,6,7,8]    , ע�⣺ �Ѿ��������ظ�
+	 * @param array1
+	 * @param array2
+	 * @return
+	 */
+	
+	public int[] merge(int[] array1, int[] array2){
+		int[] resultArray = new int[array1.length + array2.length];
+		int cnt1 = 0;
+		int cnt2 = 0;
+		int cntResult = 0;
+		resultArray[cntResult++] = array1[0]<array2[0]?array1[0]:array2[0];
+		//��array1[0]��array2[0]����Сֵ����resultArray�����ÿ���ʱ���Ѿ�����
+		//������ֵ�һ��ֵΪ0����resultArray[0]�ĳ�ʼֵ��ͬ�����
+		while(cnt1 < array1.length && cnt2 < array2.length){
+			if(array1[cnt1] > array2[cnt2]){
+				if(resultArray[cntResult-1] != array2[cnt2]){
+					//array2[cnt2]�е���С����û���ظ�
+					//����resultArray��
+					resultArray[cntResult++] = array2[cnt2++];
+				}else{
+					//array2[cnt2]�е���С�������ظ�
+					cnt2++;
+				}
+			}else{
+				if(resultArray[cntResult-1] != array1[cnt1]){
+					//array1[cnt1]�е���С����û���ظ�
+					//����resultArray��
+					resultArray[cntResult++] = array1[cnt1++];
+				}else{
+					//array1[cnt1]�е���С�������ظ�
+					cnt1++;
+				}
+			}
+		}
+		
+		//��Ϊ������������ʣ�ಿ�ַ���resultArray
+		if(cnt1 == array1.length){
+			//array2��ʣ��
+			while(cnt2 < array2.length){
+				//��array2��ʣ����������ظ��ؼ���resultArray��
+				if(resultArray[cntResult-1] != array2[cnt2]){
+					resultArray[cntResult++] = array2[cnt2++];
+				}else{
+					cnt2++;
+				}
+			}		
+		}else{
+			while(cnt1 < array1.length){
+				//��array1��ʣ����������ظ��ؼ���resultArray��
+				if(resultArray[cntResult-1] != array1[cnt1]){
+					resultArray[cntResult++] = array1[cnt1++];
+				}else{
+					cnt1++;
+				}
+			}
+		}
+		return Arrays.copyOf(resultArray, cntResult);
+	}
+
+	/**
+	 * ��һ���Ѿ��������ݵ����� oldArray������������չ�� ��չ��������ݴ�СΪoldArray.length + size
+	 * ע�⣬�������Ԫ��������������Ҫ���� ���� oldArray = [2,3,6] , size = 3,�򷵻ص�������Ϊ
+	 * [2,3,6,0,0,0]
+	 * 
+	 * @param oldArray
+	 * @param size
+	 * @return
+	 */
+	public int[] grow(int[] oldArray, int size) {
+		int[] newArray = new int[oldArray.length + size];
+		for(int i=0; i<oldArray.length; i++){
+			newArray[i] = oldArray[i];
+		}
+		return newArray;
+	}
+
+	/**
+	 * 쳲���������Ϊ��1��1��2��3��5��8��13��21...... ������һ�����ֵ�� ����С�ڸ�ֵ������ ���磬 max = 15 ,
+	 * �򷵻ص�����Ӧ��Ϊ [1��1��2��3��5��8��13] max = 1, �򷵻ؿ����� []
+	 * 
+	 * @param max
+	 * @return
+	 */
+	public int[] fibonacci(int max) {
+		if(max <= 1) return null;
+		int[] result = new int[1000];
+		result[0] = 1;
+		result[1] = 1;
+		int index = 2;//index of result[]
+		int tmpResult = 2;//current result
+		while(tmpResult < max){
+			result[index++] = tmpResult;
+			tmpResult = result[index-2] + result[index-1];
+		}
+		return Arrays.copyOf(result, index);
+	}
+
+	/**
+	 * ����С�ڸ������ֵmax�������������� ����max = 23, ���ص�����Ϊ[2,3,5,7,11,13,17,19]
+	 * 
+	 * @param max
+	 * @return
+	 */
+	public int[] getPrimes(int max) {
+		if(max <= 1) return null;
+		int[] result = new int[max];
+		int index = 0;
+		for(int currentNum=2; currentNum<max; currentNum++){
+			boolean isPrime = true;
+			for(int j = 2; j<currentNum; j++){
+				if(currentNum%j == 0){
+					//i is not prime
+					isPrime = false;
+					break;
+				}
+			}
+			if(isPrime){
+				result[index++] = currentNum;
+			}
+		}
+		return Arrays.copyOf(result, index);
+	}
+
+	/**
+	 * ��ν���������� ��ָ�����ǡ�õ�����������֮�ͣ�����6=1+2+3 ����һ�����ֵmax�� ����һ�����飬 ��������С��max ����������
+	 * 
+	 * @param max
+	 * @return
+	 */
+	public int[] getPerfectNumbers(int max) {
+		if(max < 1) return null;
+		int[] result = new int[max];
+		int index = 0;
+		for(int currentNum=1; currentNum<max; currentNum++){
+			int sum = 0;
+			for(int i=1; i<currentNum; i++){
+				//get sum of factor for each number
+				if(isFactor(i, currentNum)){
+					sum +=i;
+				}
+			}
+			if(sum == currentNum){
+				result[index++] = currentNum;
+			}
+		}
+		return Arrays.copyOf(result, index);
+	}
+	
+	public boolean isFactor(int a, int num){
+		return num%a == 0;
+	}
+
+	/**
+	 * ��seperator ������ array���������� ����array= [3,8,9], seperator = "-" �򷵻�ֵΪ"3-8-9"
+	 * 
+	 * @param array
+	 * @param s
+	 * @return
+	 */
+	public String join(int[] array, String seperator) {
+		if(array == null || seperator == null) return null;
+		StringBuilder sb = new StringBuilder();
+		sb.append(Integer.toString(array[0]));
+		for(int i=1; i<array.length; i++){
+			sb.append(seperator);
+			sb.append(Integer.toString(array[i]));
+		}
+		return sb.toString();
+	}
+
+}
diff --git a/group07/476770768/Week2_HOMEWORK/Coderising/src/com/Array/ArrayUtilTest.java b/group07/476770768/Week2_HOMEWORK/Coderising/src/com/Array/ArrayUtilTest.java
new file mode 100644
index 000000000..978d527fe
--- /dev/null
+++ b/group07/476770768/Week2_HOMEWORK/Coderising/src/com/Array/ArrayUtilTest.java
@@ -0,0 +1,74 @@
+package com.Array;
+
+import static org.junit.Assert.*;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ArrayUtilTest {
+	ArrayUtil au;
+
+	@Before
+	public void setUp() throws Exception {
+		au = new ArrayUtil();
+	}
+
+	@After
+	public void tearDown() throws Exception {
+	}
+
+	@Test
+	public void testReverseArray() {
+		int[] origin1 = { 1, 2, 3, 4, 5, 6, 7, 8 };
+		int[] origin2 = { 1, 2, 3, 4, 5 };
+		au.reverseArray(origin1);
+		au.reverseArray(origin2);
+		assertArrayEquals(new int[] { 8, 7, 6, 5, 4, 3, 2, 1 }, origin1);
+		assertArrayEquals(new int[] { 5, 4, 3, 2, 1 }, origin2);
+	}
+
+	@Test
+	public void testRemoveZero() {
+		int[] oldArray = { 1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5 };
+		assertArrayEquals(new int[] { 1, 3, 4, 5, 6, 6, 5, 4, 7, 6, 7, 5 }, au.removeZero(oldArray));
+	}
+
+	@Test
+	public void testMerge() {
+		int[] array1 = {0, 5, 7, 8};
+		int[] array2 = {4, 5, 8, 9};
+		assertArrayEquals(new int[]{0,4,5,7,8, 9}, au.merge(array1, array2));
+				
+	}
+
+	@Test
+	public void testGrow() {
+		int[] oldArray = {2,3,6};
+		assertArrayEquals(new int[]{2,3,6,0,0,0}, au.grow(oldArray, 3));
+	}
+
+	@Test
+	public void testFibonacci() {
+		assertArrayEquals(new int[]{1,1,2,3,5,8,13}, au.fibonacci(15));
+		assertEquals(null, au.fibonacci(1));
+	}
+
+	@Test
+	public void testGetPrimes() {
+		assertArrayEquals(new int[]{2,3,5,7,11,13,17,19}, au.getPrimes(23));
+		assertEquals(null, au.getPrimes(1));
+	}
+
+	@Test
+	public void testGetPerfectNumbers() {
+		assertArrayEquals(new int[]{6, 28, 496}, au.getPerfectNumbers(1000));
+	}
+
+	@Test
+	public void testJoin() {
+		assertEquals("3-4-5", au.join(new int[]{3,4,5}, "-"));
+		assertEquals("3|4|5", au.join(new int[]{3,4,5}, "|"));
+	}
+
+}
diff --git a/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyBinaryTreeNodeTest.java b/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyBinaryTreeNodeTest.java
index 9766b0394..73f3a86b6 100644
--- a/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyBinaryTreeNodeTest.java
+++ b/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyBinaryTreeNodeTest.java
@@ -1,8 +1,11 @@
 package com.coding2017.group7.homework.c0226;
 
 import org.junit.Assert;
+import org.junit.FixMethodOrder;
 import org.junit.Test;
+import org.junit.runners.MethodSorters;
 
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
 public class MyBinaryTreeNodeTest {
 
 
diff --git a/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyLinkedList.java b/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyLinkedList.java
index 6b8a9ed19..53948a1c0 100644
--- a/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyLinkedList.java
+++ b/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyLinkedList.java
@@ -1,5 +1,9 @@
 package com.coding2017.group7.homework.c0226;
 
+import org.junit.FixMethodOrder;
+import org.junit.runners.MethodSorters;
+
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
 public class MyLinkedList implements MyList {
 
     private Node head = new Node();
@@ -96,6 +100,7 @@ private void checkRangeAdd(int index) {
             throw new IndexOutOfBoundsException("Index: " + index + ", Size:" + size);
         }
     }
+
     private Node find(int index) {
         Node node = head;
         int pos = -1;
diff --git a/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyLinkedListTest.java b/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyLinkedListTest.java
index fe7d9ba28..0fee275cb 100644
--- a/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyLinkedListTest.java
+++ b/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyLinkedListTest.java
@@ -3,8 +3,11 @@
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.FixMethodOrder;
 import org.junit.Test;
+import org.junit.runners.MethodSorters;
 
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
 public class MyLinkedListTest {
 
     private MyLinkedList myList = new MyLinkedList();
diff --git a/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyStackTest.java b/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyStackTest.java
index d29031be6..57c1ab7a5 100644
--- a/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyStackTest.java
+++ b/group07/562247675/homework/homework-0226/src/main/java/com/coding2017/group7/homework/c0226/MyStackTest.java
@@ -3,8 +3,11 @@
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.FixMethodOrder;
 import org.junit.Test;
+import org.junit.runners.MethodSorters;
 
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
 public class MyStackTest {
     private MyStack myStack = new MyStack();
     private Object[] elements = new Object[]{1};
diff --git a/group07/562247675/homework/homework-0226/src/main/resources/readme.md b/group07/562247675/homework/homework-0226/src/main/resources/readme.md
index e69de29bb..a99a72ae0 100644
--- a/group07/562247675/homework/homework-0226/src/main/resources/readme.md
+++ b/group07/562247675/homework/homework-0226/src/main/resources/readme.md
@@ -0,0 +1,21 @@
+# CPU、内存、硬盘、指令之间的关系
+　　以文件复制为例，简单描述四者之间的协同工作。
+
+　　日常生活中，我们经常会在电脑磁盘之间的复制粘粘文件，是怎么实现的呢？粗读了《程序是怎么跑起来的》，这里简单描述下这个过程。
+
+　　当我们按下 Ctrl + C 时，CPU 执行 “复制指令” 将硬盘文件的起止地址临时放到内存中，这时内存并没有读取磁盘的所有文件数据。
+
+　　当我们按下 Ctrl + V 时，CPU 执行 “粘粘指令” 才会真正去拷贝文件，将文件起止地址取出，读取硬盘起止地址的数据到内存中，将内存中的数据，写入到硬盘新的起止地址里。
+　　
+　　这个过程看似简单，但是却有几个地方需要仔细去思考的，下面是我自己的几个自问自答。
+
+- 如果文件有 100GB，而内存只有 8GB，内存会不会爆掉？
+不会，CPU “复制指令”执行时，总是会先将磁盘的文件读取到内存的缓存区，再从缓存区写入到硬盘中。因为内存的读写速度，是硬盘的好几十万倍（内存读写速率毫微秒级别，硬盘读写速率毫秒级别）所以不会出现硬盘等待内存读取数据再写入硬盘的情况，看到的进度条，也只是反映硬盘的写入速率。
+
+- 既然内存读写速率这么快，那硬盘是不是可以被内存替代？
+不会，硬盘读写速率慢，但数据写入到硬盘后，是持久化存在的，不会因为关机而导致数据丢失，再次开机时硬盘数据还在。
+但是，内存是带电存储的，虽然读写速率快，但是一旦关机失去电荷，内存中所有的数据将会丢失，内存也不会被硬盘所替代。
+同时，内存容量的造价，也比硬盘要昂贵的多。单个硬盘容量超过 1TB 的很常见，但是单个内存容量超过 64GB 的，生活中是很少见的。
+
+- “复制指令” 和 “拷贝指令” 在 CPU 内部是真实存在的吗？
+显然不是，这里描述的这两个 “指令”，其实是 CPU 内部多种指令集协同工作完成的，并不存在这样的单独指令。
\ No newline at end of file
diff --git a/group07/562247675/homework/homework-0226/src/test/resources/readme.md b/group07/562247675/homework/homework-0226/src/test/resources/readme.md
deleted file mode 100644
index e69de29bb..000000000
diff --git a/group07/724319952/src/cn/fyl/first/ArrayList.java b/group07/724319952/src/cn/fyl/first/ArrayList.java
new file mode 100644
index 000000000..54d9d609b
--- /dev/null
+++ b/group07/724319952/src/cn/fyl/first/ArrayList.java
@@ -0,0 +1,107 @@
+package cn.fyl.first;
+
+/*
+ * 动态数组
+ */
+public class ArrayList implements List {
+
+	// 记录数组大小
+	private int size = 0;
+
+	// 设数组容量为3
+	private Object[] elementData = new Object[3];
+
+	// 扩容
+	public void dilatation(int newCapacity) {
+
+		if (newCapacity < size) {
+			return;
+		}
+
+		Object[] old = elementData;
+		elementData = new Object[newCapacity];
+		for (int i = 0; i < size; i++) {
+			elementData[i] = old[i];
+		}
+
+	}
+
+	// 插入值
+	public void add(Object o) {
+		add(size(), o);
+	}
+
+	// 按索引插入值
+	public void add(int index, Object o) {
+		if (elementData.length == size()) {
+			dilatation(size() * 2 + 1);
+		}
+		// 插入的位置小于数组大小，将index位置的值依次向后退一位
+		for (int i = size; i > index; i--) {
+			elementData[i] = elementData[i - 1];
+		}
+		elementData[index] = o;
+		size++;
+
+	}
+
+	// 取值
+	public Object get(int index) {
+
+		if (index > size) {
+			return null;
+		} else {
+			return elementData[index];
+		}
+
+	}
+
+	// 按索引删除该值
+	public Object remove(int index) {
+		Object o = elementData[index];
+		// 删除的位置小于数组大小，将index位置后面的值依次向前挪一位
+		for (int i = index; i < elementData.length - 1; i++) {
+			elementData[i] = elementData[i + 1];
+		}
+		size--;
+		return o;
+	}
+
+	// 返回数组大小
+	public int size() {
+		return size;
+	}
+
+	//迭代器
+	 class MyIterator implements Iterator {
+		int current = 0;
+
+		public boolean hasNext() {
+			return current < size;
+		}
+
+		public Object next() {
+			if (hasNext())
+				return elementData[current++];
+			else
+				throw new java.util.NoSuchElementException();
+		}
+
+	}
+
+	public static void main(String[] args) {
+		ArrayList a = new ArrayList();
+		a.add(0, 1);
+		a.add(2);
+		a.add(3);
+		a.add(4);
+		a.add(1, 0);
+		a.remove(3);
+		ArrayList.MyIterator m = a.new MyIterator();
+		System.err.println(a.elementData.length);
+		while(m.hasNext()){
+			System.out.print(m.next()+"  ");
+		}
+	}
+	
+}
diff --git a/group07/724319952/src/cn/fyl/first/BinaryTreeNode.java b/group07/724319952/src/cn/fyl/first/BinaryTreeNode.java
new file mode 100644
index 000000000..5b136abcc
--- /dev/null
+++ b/group07/724319952/src/cn/fyl/first/BinaryTreeNode.java
@@ -0,0 +1,68 @@
+package cn.fyl.first;
+
+public class BinaryTreeNode {
+	private Object data;						//保存数据
+	private BinaryTreeNode left;		//左子树
+	private BinaryTreeNode right;		//右子树
+	private BinaryTreeNode root;		//根节点
+	
+	public BinaryTreeNode getRoot() {
+		return root;
+	}
+	public void setRoot(BinaryTreeNode root) {
+		this.root = root;
+	}
+	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,BinaryTreeNode t){
+		if(t == null){
+			BinaryTreeNode temp = new BinaryTreeNode();		//新建插入值的结点
+			temp.setData(o);
+			return temp;
+		}
+		boolean temp = (int)o > (int)t.getData();			//暂存插入的值跟结点的值比较大小结果	
+		if(temp){																//ture时（插入的值大于结点的值大），所以插到右子树
+			System.err.println(temp);
+			t.right =insert(o, t.right);
+		}
+		else{
+			System.out.println(temp);
+			t.left = insert(o, t.left);
+		}
+		return  t;
+	}
+	
+	public static void main(String[] args) {
+		BinaryTreeNode root = new BinaryTreeNode();
+		BinaryTreeNode left1 = new BinaryTreeNode();
+		BinaryTreeNode right1 = new BinaryTreeNode();
+		BinaryTreeNode left2 = new BinaryTreeNode();
+		BinaryTreeNode left3 = new BinaryTreeNode();
+		root.setData(5);
+		root.setLeft(left1);         left1.setData(2);
+		root.setRight(right1);     right1.setData(7);
+		left1.setLeft(left2);         left2.setData(1);
+		right1.setLeft(left3);	     left3.setData(6);
+		BinaryTreeNode temp = root.insert(4, left1);
+		System.out.println(left1.getRight().getData());
+	}
+	
+}
diff --git a/group07/724319952/src/cn/fyl/first/Iterator.java b/group07/724319952/src/cn/fyl/first/Iterator.java
new file mode 100644
index 000000000..7b907d413
--- /dev/null
+++ b/group07/724319952/src/cn/fyl/first/Iterator.java
@@ -0,0 +1,7 @@
+package cn.fyl.first;
+
+public interface Iterator {
+
+	public boolean hasNext();
+	public Object next();
+}
diff --git a/group07/724319952/src/cn/fyl/first/LinkedList.java b/group07/724319952/src/cn/fyl/first/LinkedList.java
new file mode 100644
index 000000000..e6e5fd71b
--- /dev/null
+++ b/group07/724319952/src/cn/fyl/first/LinkedList.java
@@ -0,0 +1,163 @@
+package cn.fyl.first;
+
+public class LinkedList implements List {
+
+	private Node head,tail;	//头尾结点
+	private int size;				//保存链表大小
+
+	//将值插入链表
+	public void add(Object o) {
+		add(size(),o);
+	}
+
+	//将值从index位置插入链表
+	public void add(int index, Object o) {
+		if(index == 0){
+			addFirst(o);
+		}
+		else if(index >= size){
+			addLast(o);
+		}
+		else{
+			Node current = head;
+			for (int i = 1; i < index; i++) {
+				current = current.next;
+			}
+			Node temp = current.next;
+			current.next = new Node(o);
+			(current.next).next = temp;
+			size++;
+		}
+	}
+
+	//取出index位置的值
+	public Object get(int index) {
+		if(index < 0 || index >=size){
+			return null;
+		}
+		else if(index == 0){
+			return head.data;
+		}
+		else if(index == size-1){
+			return tail.data;
+		}
+		else{
+			Node current = head;
+			for (int i = 1; i < index; i++) {
+				current = current.next;
+			}
+			Node temp = current.next;
+			return temp.data;
+		}
+	}
+
+	//删除index位置的值
+	public Object remove(int index) {
+		if(index < 0 || index >size)
+		return null;
+		else if(index ==0)
+			return head.data;
+		else if(index == size -1)
+			return tail.data;
+		else{
+			Node previous = head;
+			for (int i = 1; i < index; i++) {
+				previous = previous.next;
+			}
+			Node current = previous.next;
+			previous.next = current.next;
+			size--;
+			return current.data;
+		}
+	}
+
+	public int size() {
+		return size;
+	}
+
+	//添加头结点
+	public void addFirst(Object o) {
+		Node newNode = new Node(o);
+		newNode.next = head;		//指向头引用所指结点
+		head = newNode;			//头引用指向新增结点
+		size++;
+		if(tail == null){
+			tail = head;
+		}
+	}
+
+	//添加尾结点
+	public void addLast(Object o) {
+		Node newNode = new Node(o);
+		if(tail == null){
+			head = tail = newNode;
+		}
+		else{
+		tail.next = newNode;
+		tail = tail.next;
+		}
+		size++;
+	}
+
+	//删除头结点
+	public Object removeFirst(){
+		if(size == 0){
+			return null;
+		}
+		else if(size == 1){
+			Node temp = head;
+			head = tail = null;
+			size = 0;
+			return temp.data;
+		}
+		else{
+			Node temp = head;
+			head = head.next;
+			size--;
+			return temp.data;
+		}
+	}
+
+	//删除尾结点
+	public Object removeLast() {
+		if(size == 0){
+			return null;
+		}
+		else if(size ==1){
+			Node temp = head;
+			head =tail =null;
+			size =0;
+			return temp.data;
+		}
+		else{
+			Node current = head;
+			for (int i = 0; i < size - 2; i++) {
+				current = current.next;
+			}
+			Node temp =tail;
+			tail = current;
+			tail.next = null;
+			size--;
+			return temp.data;
+		}
+	}
+
+
+
+	private static class Node {
+		Object data;
+		Node next;
+		public Node(Object o){
+			data = o;
+		}
+	}
+	
+	public static void main(String[] arg){
+		LinkedList l = new LinkedList();
+		l.add(0);
+		l.add(2);
+		l.add(4);
+		l.add(3, 1);
+		System.out.println(l.removeLast()+"  "+l.removeFirst()+"  "+l.get(0)+"  "+l.get(1));
+	}
+}
diff --git a/group07/724319952/src/cn/fyl/first/List.java b/group07/724319952/src/cn/fyl/first/List.java
new file mode 100644
index 000000000..45a4d4652
--- /dev/null
+++ b/group07/724319952/src/cn/fyl/first/List.java
@@ -0,0 +1,11 @@
+package cn.fyl.first;
+
+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/group07/724319952/src/cn/fyl/first/Queue.java b/group07/724319952/src/cn/fyl/first/Queue.java
new file mode 100644
index 000000000..1e9e5ef3a
--- /dev/null
+++ b/group07/724319952/src/cn/fyl/first/Queue.java
@@ -0,0 +1,37 @@
+package cn.fyl.first;
+
+public class Queue {
+
+	LinkedList linkedlist = new LinkedList();
+	
+	public void enQueue(Object o){		
+		linkedlist.addLast(o);
+	}
+	
+	public Object deQueue(){
+		return linkedlist.removeFirst();
+	}
+	
+	public boolean isEmpty(){
+		if(linkedlist.size()>0)
+		return false;
+		else
+		return true; 
+	}
+	
+	public int size(){
+		return linkedlist.size();
+	}
+	
+	public Object get(int index){
+		return linkedlist.get(index);
+	}
+	
+	public static void main(String[] arg){
+		Queue q = new Queue();
+		q.enQueue(1);
+		q.enQueue(2);
+		System.out.println(q.get(1));
+	} 
+	
+}
diff --git a/group07/724319952/src/cn/fyl/first/Stack.java b/group07/724319952/src/cn/fyl/first/Stack.java
new file mode 100644
index 000000000..368178691
--- /dev/null
+++ b/group07/724319952/src/cn/fyl/first/Stack.java
@@ -0,0 +1,39 @@
+package cn.fyl.first;
+
+public class Stack {
+
+	private ArrayList elementData = new ArrayList();
+	int last;
+
+	public void push(Object o) {
+		elementData.add(o);
+	}
+
+	public Object pop() {
+		return elementData.remove(last-1);
+	}
+
+	public Object peek() {
+		last = elementData.size()-1;
+		return elementData.get(last);
+	}
+
+	public boolean isEmpty() {
+		if(elementData.size() > 0)
+			return false;
+		else
+			return true;
+	}
+
+	public int size() {
+		return elementData.size();
+	}
+
+	public static void main(String[] args) {
+		Stack s = new Stack();
+		s.push(1);
+		s.push(2);
+		s.push(3);
+		System.out.println(s.peek());
+	}
+}
diff --git a/group07/752262774/.gitignore b/group07/752262774/.gitignore
new file mode 100644
index 000000000..8d9372e20
--- /dev/null
+++ b/group07/752262774/.gitignore
@@ -0,0 +1,23 @@
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+/bin/
diff --git a/group07/752262774/2.26/coding/src/main/java/ArrayList.java b/group07/752262774/2.26/coding/src/main/java/ArrayList.java
new file mode 100644
index 000000000..a7b0f43ae
--- /dev/null
+++ b/group07/752262774/2.26/coding/src/main/java/ArrayList.java
@@ -0,0 +1,114 @@
+package main.java;
+
+import java.util.Arrays;
+import java.util.NoSuchElementException;
+
+/**
+ * Created by yrs on 2017/2/21.
+ */
+public class ArrayList implements List{
+
+    private int size = 0;
+
+    private Object[] elementData;
+
+    public ArrayList() {
+        this.elementData = new Object[10];
+    }
+
+    public ArrayList(int initialCapacity) {
+        if (initialCapacity > 0) {
+            this.elementData = new Object[initialCapacity];
+        } else if (initialCapacity == 0) {
+            this.elementData = new Object[0];
+        } else {
+            throw new IllegalArgumentException("Illegal Capacity: "+
+                    initialCapacity);
+        }
+    }
+
+    public void add(Object o) {
+        judegGrow();
+        elementData[size++] = o;
+    }
+
+    public void add(int index, Object o) {
+        if(index<0 || index>size) {
+            throw new IndexOutOfBoundsException();
+        }else if(index == size) {
+            add(o);
+        }else {
+            judegGrow();
+            System.arraycopy(elementData, index, elementData, index + 1,
+                    size - index);
+            elementData[index] = o;
+            size++;
+        }
+    }
+
+    public Object get(int index) {
+        rangeCheck(index);
+        return elementData[index];
+    }
+
+    public Object remove(int index) {
+        rangeCheck(index);
+        Object o = elementData[index];
+
+        int move = size - 1 -index;
+        if(move > 0) {
+            System.arraycopy(elementData, index+1, elementData, index, move);
+        }
+        elementData[--size] = null;
+
+        return o;
+    }
+
+    public int size() {
+        return size;
+    }
+
+    public Iterator iterator() {
+        return new ArrrayListIterator(this);
+    }
+
+    private class ArrrayListIterator implements Iterator {
+
+        ArrayList arrayList;
+
+        int pos;
+
+        private ArrrayListIterator(ArrayList arrayList) {
+            this.arrayList = arrayList;
+        }
+
+        @Override
+        public boolean hasNext() {
+            return pos != arrayList.size;
+        }
+
+        @Override
+        public Object next() {
+            if(pos < size) {
+                int i = pos;
+                pos++;
+                return elementData[i];
+            }else {
+                throw new NoSuchElementException();
+            }
+        }
+    }
+
+    private void judegGrow() {
+        if(size == elementData.length) {
+            elementData = Arrays.copyOf(elementData, elementData.length + 1);
+        }
+    }
+
+    private void rangeCheck(int index) {
+        if(index<0 || index>=size) {
+            throw new IndexOutOfBoundsException();
+        }
+    }
+}
+                
\ No newline at end of file
diff --git a/group07/752262774/2.26/coding/src/main/java/BinaryTreeNode.java b/group07/752262774/2.26/coding/src/main/java/BinaryTreeNode.java
new file mode 100644
index 000000000..cf8ade919
--- /dev/null
+++ b/group07/752262774/2.26/coding/src/main/java/BinaryTreeNode.java
@@ -0,0 +1,49 @@
+package main.java;
+
+/**
+ * Created by yrs on 2017/2/25.
+ */
+public class BinaryTreeNode {
+
+    private Object data;
+
+    private BinaryTreeNode left;
+
+    private BinaryTreeNode right;
+
+    public BinaryTreeNode(BinaryTreeNode left, Object o, BinaryTreeNode right) {
+        setData(o);
+        setLeft(left);
+        setRight(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;
+    }
+
+}
+                
\ No newline at end of file
diff --git a/group07/752262774/2.26/coding/src/main/java/Iterator.java b/group07/752262774/2.26/coding/src/main/java/Iterator.java
new file mode 100644
index 000000000..74a0b3557
--- /dev/null
+++ b/group07/752262774/2.26/coding/src/main/java/Iterator.java
@@ -0,0 +1,12 @@
+package main.java;
+
+/**
+ * Created by yrs on 2017/2/25.
+ */
+public interface Iterator {
+
+    public boolean hasNext();
+
+    public Object next();
+}
+                
\ No newline at end of file
diff --git a/group07/752262774/2.26/coding/src/main/java/LinkedList.java b/group07/752262774/2.26/coding/src/main/java/LinkedList.java
new file mode 100644
index 000000000..4f37c1a31
--- /dev/null
+++ b/group07/752262774/2.26/coding/src/main/java/LinkedList.java
@@ -0,0 +1,210 @@
+package main.java;
+
+
+import java.util.NoSuchElementException;
+
+/**
+ * Created by yrs on 2017/2/23.
+ */
+public class LinkedList implements List{
+
+    private int size;
+
+    private Node first;
+
+    private Node last;
+
+    public LinkedList() {
+        this.first = null;
+        this.last =null;
+    }
+
+    public void add(Object o) {
+        Node l = this.last;
+        Node newNode = new Node(l, o, null);
+        this.last = newNode;
+        if(null == l) {
+            this.first = newNode;
+        }else {
+            l.next = newNode;
+        }
+        this.size++;
+    }
+
+    public void add(int index, Object o) {
+        if(index<0 || index>size) {
+            throw new IndexOutOfBoundsException();
+        }else if(index == this.size) {
+            this.add(o);
+        }else {
+            Node target = targetNode(index);
+            Node before = target.prev;
+            Node newNode = new Node(before, o, target);
+            target.prev = newNode;
+            if(null == before) {
+                this.first = newNode;
+            }else {
+                before.next = newNode;
+            }
+            this.size++;
+        }
+    }
+
+    public Object get(int index) {
+        rangeCheck(index);
+        return targetNode(index).data;
+    }
+
+    public Object remove(int index) {
+        rangeCheck(index);
+        Node target = targetNode(index);
+        Node before = target.prev;
+        Node after = target.next;
+        Object o = target.data;
+
+        if(null == before) {
+            this.first = null;
+        }else {
+            before.next = after;
+            target.prev = null;
+        }
+
+        if(null == after) {
+            this.last = before;
+        }else {
+            after.prev = before;
+            target.next = null;
+        }
+        target.data = null;
+        this.size--;
+
+        return o;
+    }
+
+    public int size() {
+        return this.size;
+    }
+
+    public void addFirst(Object o) {
+        Node node = first;
+        Node newNode = new Node(null, o, node);
+        this.first = newNode;
+        if(null == node) {
+            this.last = newNode;
+        }else {
+            node.prev = newNode;
+        }
+        this.size++;
+    }
+
+    public void addLast(Object o) {
+        add(o);
+    }
+
+    public Object removeFirst() {
+        Node node = first;
+        if (node == null)
+            throw new NoSuchElementException();
+
+        first = node.next;
+        Object o = node.data;
+        if(null == node.next) {
+            this.last = null;
+        }else {
+            first.prev = null;
+        }
+        node.data = null;
+        node.next = null;
+        this.size--;
+        return o;
+    }
+
+    public Object removeLast() {
+        Node node = last;
+        if (node == null)
+            throw new NoSuchElementException();
+
+        last = node.prev;
+        Object o = node.data;
+        if(null == node.prev) {
+            this.first = null;
+        }else {
+            last.next = null;
+        }
+        node.data = null;
+        node.prev = null;
+        this.size--;
+        return o;
+    }
+
+    public Iterator iterator() {
+        return new LinkedListIterator(this);
+    }
+
+    private class LinkedListIterator implements Iterator {
+
+        LinkedList linkedList;
+
+        int pos;
+
+        private LinkedListIterator(LinkedList linkedList) {
+            this.linkedList = linkedList;
+        }
+
+        @Override
+        public boolean hasNext() {
+            return pos != linkedList.size;
+        }
+
+        @Override
+        public Object next() {
+            if(pos < size) {
+                int i = pos;
+                pos++;
+                return linkedList.get(i);
+            }else {
+                throw new NoSuchElementException();
+            }
+        }
+    }
+
+    private void rangeCheck(int index) {
+        if(index<0 || index>=size) {
+            throw new IndexOutOfBoundsException();
+        }
+    }
+
+    private Node targetNode(int index) {
+        //由index值在链表的前半部分还是后半部分，决定是从前向后，还是从后向前查找。
+        Node target = new Node();
+        if(index < (this.size >> 1)) {
+            target = this.first;
+            for(int i=0; i<index; i++) {
+                target = target.next;
+            }
+        }else {
+            target = this.last;
+            for(int i=size-1; i>index; i--) {
+                target = target.prev;
+            }
+        }
+        return target;
+    }
+
+    private static class Node{
+        Object data;
+        Node next;
+        Node prev;
+
+        Node() {
+        }
+
+        Node(Node prev, Object o, Node next) {
+            this.data = o;
+            this.next = next;
+            this.prev = prev;
+        }
+    }
+
+}
+                
\ No newline at end of file
diff --git a/group07/752262774/2.26/coding/src/main/java/List.java b/group07/752262774/2.26/coding/src/main/java/List.java
new file mode 100644
index 000000000..0f1d97933
--- /dev/null
+++ b/group07/752262774/2.26/coding/src/main/java/List.java
@@ -0,0 +1,18 @@
+package main.java;
+
+/**
+ * Created by yrs on 2017/2/23.
+ */
+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/group07/752262774/2.26/coding/src/main/java/Queue.java b/group07/752262774/2.26/coding/src/main/java/Queue.java
new file mode 100644
index 000000000..59a120f51
--- /dev/null
+++ b/group07/752262774/2.26/coding/src/main/java/Queue.java
@@ -0,0 +1,27 @@
+package main.java;
+
+/**
+ * Created by yrs on 2017/2/25.
+ */
+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();
+    }
+
+}
+                
\ No newline at end of file
diff --git a/group07/752262774/2.26/coding/src/main/java/Stack.java b/group07/752262774/2.26/coding/src/main/java/Stack.java
new file mode 100644
index 000000000..efaa2498b
--- /dev/null
+++ b/group07/752262774/2.26/coding/src/main/java/Stack.java
@@ -0,0 +1,39 @@
+package main.java;
+
+/**
+ * Created by yrs on 2017/2/25.
+ */
+public class Stack {
+    private ArrayList elementData = new ArrayList();
+
+    public void push(Object o) {
+        elementData.add(o);
+    }
+
+    public Object pop() {
+        Object o = elementData.remove(elementData.size()-1);
+        return o;
+    }
+
+    public Object peek() {
+        Object o = elementData.get(elementData.size() - 1);
+        return o;
+    }
+
+    public boolean isEmpty() {
+        return elementData.size() == 0;
+    }
+
+    public int size() {
+        return elementData.size();
+    }
+
+    public static void main(String [] args) {
+        Stack stack = new Stack();
+        stack.push(1);
+        System.out.println(stack.size() + " " + stack.peek() + " " + stack.pop() + " " + stack.isEmpty());
+
+    }
+
+}
+                
\ No newline at end of file
diff --git a/group07/752262774/2.26/coding/src/main/test/test.java b/group07/752262774/2.26/coding/src/main/test/test.java
new file mode 100644
index 000000000..b32a0b640
--- /dev/null
+++ b/group07/752262774/2.26/coding/src/main/test/test.java
@@ -0,0 +1,60 @@
+package main.test;
+
+
+import javax.swing.tree.TreeNode;
+import java.util.*;
+
+/**
+ * Created by yrs on 2017/2/21.
+ */
+public class test {
+    public static void main(String [] args) {
+        ArrayList list = new ArrayList(4);
+        list.add(9);
+        System.out.println(list);
+        list.add(1,3);
+//        list.add(2,3);   //error IndexOutOfBoundsException
+        list.remove(1);
+        System.out.println(list.size());
+
+        Object[] target = new Object[0];
+        System.out.println(target);
+        Object[] EMPTY_ELEMENTDATA = {};
+        System.out.println(EMPTY_ELEMENTDATA);
+
+
+        //LinkedList
+        LinkedList linkedList = new LinkedList();
+        linkedList.add(1);
+        System.out.println(linkedList.get(0));
+        linkedList.add(1,3);
+        System.out.println(linkedList.size());
+        System.out.println(3 >> 1);
+
+        for(int i=0; i<1; i++) {
+            System.out.println("dd");
+        }
+
+        Stack stack = new Stack();
+
+        Queue queue;
+        TreeNode treeNode;
+
+        List<Integer> lstint = new ArrayList<Integer>();
+        lstint.add(1);
+        lstint.add(2);
+        lstint.add(3);
+
+        // Iterator遍历一
+        Iterator<Integer> iterator = lstint.iterator();
+        iterator.hasNext();
+        while (iterator.hasNext())
+        {
+            int i = (Integer) iterator.next();
+            System.out.println(i);
+        }
+
+
+    }
+}
+                
\ No newline at end of file
diff --git "a/group07/752262774/git\345\221\275\344\273\244.txt" "b/group07/752262774/git\345\221\275\344\273\244.txt"
deleted file mode 100644
index 8bcf2ffa0..000000000
--- "a/group07/752262774/git\345\221\275\344\273\244.txt"
+++ /dev/null
@@ -1,11 +0,0 @@
-��װgit gui��������git bash����
-1.��¡
-git clone git@github.com:leijing1992/coding2017.git
-2.�����޸ĵ��ļ�
-git add -A
-3.�ύ���ݴ���
-git commit -m "�ύ***����"
-4.����master
-git pull origin master
-5.�ύ��master
-git push origin master
\ No newline at end of file
diff --git a/group07/764189149/src/firstHomeWork/util/Stack.java b/group07/764189149/src/firstHomeWork/util/Stack.java
index 00dc78417..a217fd0c7 100644
--- a/group07/764189149/src/firstHomeWork/util/Stack.java
+++ b/group07/764189149/src/firstHomeWork/util/Stack.java
@@ -1,23 +1,22 @@
 package firstHomeWork.util;
 
-import java.util.Queue;
-
-public class Stack {
-	private ArrayList elementData = new ArrayList();
-	public void push(Object o){		
+public class Stack<E> {
+	private ArrayList<E> elementData = new ArrayList<E>();
+	public void push(E e){
+		elementData.add(e);
 	}
 	
 	public Object pop(){
-		return null;
+		return elementData.remove(elementData.size() - 1);
 	}
 	
 	public Object peek(){
-		return null;
+		return elementData.get(elementData.size() - 1);
 	}
 	public boolean isEmpty(){
-		return false;
+		return elementData.isEmpty();
 	}
 	public int size(){
-		return -1;
+		return elementData.size();
 	}
 }
diff --git a/group07/770164810/src/com/coding/basic/ArrayList.java b/group07/770164810/src/com/coding/basic/ArrayList.java
new file mode 100644
index 000000000..265f4398e
--- /dev/null
+++ b/group07/770164810/src/com/coding/basic/ArrayList.java
@@ -0,0 +1,68 @@
+package com.coding.basic;
+
+public class ArrayList implements List {
+	
+	private int size = 0;
+	
+	private int modifyNum = 0;
+	
+	private Object[] elementData = new Object[100];
+	public void add(Object o){
+		elementData[size]=o;
+		size++;
+	}
+	public void add(int index, Object o){
+		for(int i=size;i>index;i--)
+		{
+			elementData[i]=elementData[i-1];
+		}
+		elementData[index]=o;
+	}
+	
+	public Object get(int index){
+		return elementData[index];
+	}
+	
+	public Object remove(int index){
+		Object oj=elementData[index];
+		for(int i=index;i<size;i++)
+		{
+			elementData[i]=elementData[i+1];
+		}
+		elementData[size--]=null;
+		return oj;
+	}
+	
+	public int size(){
+		return size;
+	}
+	
+	public Iterator iterator(){
+		return null;
+	}
+	
+	public ArrayListIterator getMyIterator(){
+		return new ArrayListIterator();
+	}
+	
+	public class ArrayListIterator implements Iterator{
+		
+		int pos = 0;
+		
+		@Override
+		public boolean hasNext() {
+			return pos!=size;
+		}
+
+		@Override
+		public Object next() {
+			return elementData[pos++];
+		}
+		
+		public void remove(){
+			
+		}
+		
+	}
+	
+}
diff --git a/group07/770164810/src/com/coding/basic/BinaryTreeNode.java b/group07/770164810/src/com/coding/basic/BinaryTreeNode.java
new file mode 100644
index 000000000..43ca66297
--- /dev/null
+++ b/group07/770164810/src/com/coding/basic/BinaryTreeNode.java
@@ -0,0 +1,58 @@
+package com.coding.basic;
+
+public class BinaryTreeNode {
+
+	private Object data;
+	private BinaryTreeNode left;
+	private BinaryTreeNode right;
+	
+	int i = 0;
+
+	public BinaryTreeNode(Object data){
+		this.data = data;
+	}
+	
+	public BinaryTreeNode(){}
+	
+	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) {
+		
+		if(data == null){
+			data=o;
+			return this;
+		}
+		
+		if (left == null) {
+			left = new BinaryTreeNode(o);
+		} else if(right == null){
+			right = new BinaryTreeNode(o);
+		} else {
+			left.insert(o);
+		}
+		return new BinaryTreeNode(o);
+	}
+
+}
diff --git a/group07/770164810/src/com/coding/basic/Iterator.java b/group07/770164810/src/com/coding/basic/Iterator.java
new file mode 100644
index 000000000..06ef6311b
--- /dev/null
+++ b/group07/770164810/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/group07/770164810/src/com/coding/basic/LinkedList.java b/group07/770164810/src/com/coding/basic/LinkedList.java
new file mode 100644
index 000000000..6a424d7d6
--- /dev/null
+++ b/group07/770164810/src/com/coding/basic/LinkedList.java
@@ -0,0 +1,149 @@
+package com.coding.basic;
+
+public class LinkedList implements List {
+
+	private Node first;
+	private Node last;
+	
+	private int size = 0;
+
+	public void add(Object o) {
+		
+		if (first == null) {
+			addFirst(o);
+		}else{
+			addLast(o);
+		}
+		
+	}
+
+	public void add(int index, Object o) {
+		
+		isIndexOutOfBounds(index);		
+		
+		Node n = null;
+		if(first == null){
+			addFirst(o);
+		}else if(index == size-1){
+			addLast(o);
+		}else{
+			n = getNode(index-1);
+			Node n1 = n.next;
+			n.next = new Node(o);
+			n.next.next = n1;
+			size++;
+		}
+	}
+
+	public Object get(int index) {
+		
+		isIndexOutOfBounds(index);
+		
+		return getNode(index).data;
+	}
+
+	public Node getNode(int index) {
+		
+		if(index == 0) return first;
+		if(index == size-1) return last;
+		
+		Node n = first;
+		for (int i = 0; i <= index ; i++) {
+			if (i == index) {
+				break;
+			}
+			n = n.next;
+		}
+		return n;
+	}
+	
+	public Object remove(int index) {
+		
+		isIndexOutOfBounds(index);
+		
+		
+		Node n = getNode(index-1);
+		Object o = null;
+		if(index == 0){
+			o = first.data;
+			first = first.next;
+		}else if(index == size-1){
+			n.next = null;
+			last = n;
+		}else{
+			n.next = n.next.next;
+		}
+		size--;
+		
+		return o;
+	}
+
+	private void isIndexOutOfBounds(int index){
+		if(index >= size || index < 0) throw new IndexOutOfBoundsException();
+	}
+	
+	public int size() {
+		return size;
+	}
+
+	public void addFirst(Object o) {
+		Node n = first;
+		first = new Node(o);
+		if(n != null){
+			first.next = n;
+		}else{
+			last = first;
+		}
+		size++;
+	}
+
+	public void addLast(Object o) {
+		Node n = new Node(o);
+		if(last != null){
+			last.next = n;
+		}else{
+			first = n;
+		}
+		last = n;
+		size++;
+	}
+
+	public Object removeFirst() {
+		return null;
+	}
+
+	public Object removeLast() {
+		return null;
+	}
+
+	public Iterator iterator() {
+		return null;
+	}
+
+	private static class Node {
+		Object data;
+		Node next;
+		
+		public Node(Object data){
+			this.data = data;
+		}
+		
+		public Node(){}
+		
+	}
+	
+	public static void main(String[] args) {
+		LinkedList l = new LinkedList();
+		l.add(1);
+		l.add(2);
+		l.add(3);
+		l.add(4);
+		l.add(2, 5);
+		l.remove(0);
+		
+		for(int i=0;i<l.size();i++){
+			System.out.println(l.get(i));
+		}
+	}
+	
+}
diff --git a/group07/770164810/src/com/coding/basic/List.java b/group07/770164810/src/com/coding/basic/List.java
new file mode 100644
index 000000000..10d13b583
--- /dev/null
+++ b/group07/770164810/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/group07/770164810/src/com/coding/basic/Queue.java b/group07/770164810/src/com/coding/basic/Queue.java
new file mode 100644
index 000000000..17bf9c6ca
--- /dev/null
+++ b/group07/770164810/src/com/coding/basic/Queue.java
@@ -0,0 +1,22 @@
+package com.coding.basic;
+
+public class Queue {
+	
+	private LinkedList list = new LinkedList();
+	
+	public void enQueue(Object o){	
+		list.addFirst(o);
+	}
+	
+	public Object deQueue(){
+		return list.removeLast();
+	}
+	
+	public boolean isEmpty(){
+		return list.size()==0;
+	}
+	
+	public int size(){
+		return list.size();
+	}
+}
diff --git a/group07/770164810/src/com/coding/basic/Stack.java b/group07/770164810/src/com/coding/basic/Stack.java
new file mode 100644
index 000000000..28b9e8a20
--- /dev/null
+++ b/group07/770164810/src/com/coding/basic/Stack.java
@@ -0,0 +1,23 @@
+package com.coding.basic;
+
+public class Stack {
+	private ArrayList elementData = new ArrayList();
+	
+	public void push(Object o){	
+		elementData.add(o);
+	}
+	
+	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();
+	}
+}
diff --git a/group07/770164810/test.txt b/group07/770164810/test.txt
deleted file mode 100644
index 7c4a013e5..000000000
--- a/group07/770164810/test.txt
+++ /dev/null
@@ -1 +0,0 @@
-aaa
\ No newline at end of file
diff --git a/group08/619057560/2-26/code/com/coding/basic/ArrayList.java b/group08/619057560/2-26/code/com/coding/basic/ArrayList.java
index 5fe312351..70daee785 100644
--- a/group08/619057560/2-26/code/com/coding/basic/ArrayList.java
+++ b/group08/619057560/2-26/code/com/coding/basic/ArrayList.java
@@ -1,80 +1,80 @@
-package com.coding.basic;
-
-import java.util.Arrays;
-import java.util.NoSuchElementException;
-
-public class ArrayList implements List {
-	
-	private int size = 0;
-	
-	private Object[] elementData = new Object[100];
-	
-	public void add(Object o){
-		if (size + 1 > elementData.length) {
-			elementData = Arrays.copyOf(elementData, elementData.length * 3 / 2 + 1);
-		}
-		elementData[size++] = o;
-	}
-	public void add(int index, Object o){
-		if (index < 0 || index > size) {
-			throw new IndexOutOfBoundsException();
-		}
-		
-		if (size + 1 > elementData.length) {
-			elementData = Arrays.copyOf(elementData, elementData.length * 3 / 2 + 1);
-		}
-		
-		System.arraycopy(elementData, index, elementData, index+1, size-index);
-		elementData[index] = o;
-		size++;
-	}
-	
-	public Object get(int index){
-		if (index < 0 || index >= size) {
-			throw new IndexOutOfBoundsException();
-		}
-		
-		return elementData[index];
-	}
-	
-	public Object remove(int index){
-		if (index < 0 || index >= size) {
-			throw new IndexOutOfBoundsException();
-		}
-		
-		Object old = elementData[index];
-		size--;
-		System.arraycopy(elementData, index+1, elementData, index, size-index);
-		elementData[size] = null;
-		
-		return old;
-	}
-	
-	public int size(){
-		return size;
-	}
-	
-	public Iterator iterator(){
-		return new Itr();
-	}
-	
-	private class Itr implements Iterator {
-		
-		int cursor = 0;
-
-		@Override
-		public boolean hasNext() {
-			return (cursor < size);
-		}
-
-		@Override
-		public Object next() {
-			if (cursor < 0 || cursor >= size) {
-				throw new NoSuchElementException();
-			}
-			return elementData[cursor++];
-		}
-		
-	}
-	
-}
+package com.coding.basic;
+
+import java.util.Arrays;
+import java.util.NoSuchElementException;
+
+public class ArrayList implements List {
+	
+	private int size = 0;
+	
+	private Object[] elementData = new Object[100];
+	
+	public void add(Object o){
+		if (size + 1 > elementData.length) {
+			elementData = Arrays.copyOf(elementData, elementData.length * 3 / 2 + 1);
+		}
+		elementData[size++] = o;
+	}
+	public void add(int index, Object o){
+		if (index < 0 || index > size) {
+			throw new IndexOutOfBoundsException();
+		}
+		
+		if (size + 1 > elementData.length) {
+			elementData = Arrays.copyOf(elementData, elementData.length * 3 / 2 + 1);
+		}
+		
+		System.arraycopy(elementData, index, elementData, index+1, size-index);
+		elementData[index] = o;
+		size++;
+	}
+	
+	public Object get(int index){
+		if (index < 0 || index >= size) {
+			throw new IndexOutOfBoundsException();
+		}
+		
+		return elementData[index];
+	}
+	
+	public Object remove(int index){
+		if (index < 0 || index >= size) {
+			throw new IndexOutOfBoundsException();
+		}
+		
+		Object old = elementData[index];
+		size--;
+		System.arraycopy(elementData, index+1, elementData, index, size-index);
+		elementData[size] = null;
+		
+		return old;
+	}
+	
+	public int size(){
+		return size;
+	}
+	
+	public Iterator iterator(){
+		return new Itr();
+	}
+	
+	private class Itr implements Iterator {
+		
+		int cursor = 0;
+
+		@Override
+		public boolean hasNext() {
+			return (cursor < size);
+		}
+
+		@Override
+		public Object next() {
+			if (cursor < 0 || cursor >= size) {
+				throw new NoSuchElementException();
+			}
+			return elementData[cursor++];
+		}
+		
+	}
+	
+}
diff --git a/group08/619057560/2-26/code/com/coding/basic/BinaryTreeNode.java b/group08/619057560/2-26/code/com/coding/basic/BinaryTreeNode.java
index af940807e..9db8eec80 100644
--- a/group08/619057560/2-26/code/com/coding/basic/BinaryTreeNode.java
+++ b/group08/619057560/2-26/code/com/coding/basic/BinaryTreeNode.java
@@ -1,47 +1,47 @@
-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){
-		if (data == null || ((Integer)data).intValue() == ((Integer)o).intValue()) {
-			data = o;
-			return this;
-		}
-		else if (((Integer)o).intValue() < ((Integer)data).intValue()) {
-			if (left == null) {
-				left = new BinaryTreeNode();
-			}
-			return left.insert(o);
-		}
-		else {
-			if (right == null) {
-				right = new BinaryTreeNode();
-			}
-			return right.insert(o);
-		}
-	}
-	
-}
+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){
+		if (data == null || ((Integer)data).intValue() == ((Integer)o).intValue()) {
+			data = o;
+			return this;
+		}
+		else if (((Integer)o).intValue() < ((Integer)data).intValue()) {
+			if (left == null) {
+				left = new BinaryTreeNode();
+			}
+			return left.insert(o);
+		}
+		else {
+			if (right == null) {
+				right = new BinaryTreeNode();
+			}
+			return right.insert(o);
+		}
+	}
+	
+}
diff --git a/group08/619057560/2-26/code/com/coding/basic/Iterator.java b/group08/619057560/2-26/code/com/coding/basic/Iterator.java
index dbe8b9afb..06ef6311b 100644
--- a/group08/619057560/2-26/code/com/coding/basic/Iterator.java
+++ b/group08/619057560/2-26/code/com/coding/basic/Iterator.java
@@ -1,7 +1,7 @@
-package com.coding.basic;
-
-public interface Iterator {
-	public boolean hasNext();
-	public Object next();
-
-}
+package com.coding.basic;
+
+public interface Iterator {
+	public boolean hasNext();
+	public Object next();
+
+}
diff --git a/group08/619057560/2-26/code/com/coding/basic/LinkedList.java b/group08/619057560/2-26/code/com/coding/basic/LinkedList.java
index d2f1422cf..38a62b2f6 100644
--- a/group08/619057560/2-26/code/com/coding/basic/LinkedList.java
+++ b/group08/619057560/2-26/code/com/coding/basic/LinkedList.java
@@ -1,137 +1,137 @@
-package com.coding.basic;
-
-import java.util.NoSuchElementException;
-
-public class LinkedList implements List {
-	
-	private Node head;
-	
-	public void add(Object o){
-		Node pNewNode = new Node();
-		pNewNode.data = o;
-		
-		Node pNode = head;
-		
-		if (head == null) {
-			head = pNewNode;
-			return;
-		}
-		
-		while (pNode.next != null) {
-			pNode = pNode.next;
-		}
-		
-		pNode.next = pNewNode;
-	}
-	
-	public void add(int index , Object o){
-		if (index < 0 && index > size()) {
-			throw new IndexOutOfBoundsException();
-		}
-		
-		Node pNewNode = new Node();
-		pNewNode.data = o;
-		
-		if (index == 0) {
-			pNewNode.next = head;
-			head = pNewNode;
-			return;
-		}
-		
-		Node pNode = head;
-		while (--index > 0) {
-			pNode = pNode.next;
-		}
-		pNewNode.next = pNode.next;
-		pNode.next = pNewNode;
-	}
-	
-	public Object get(int index){
-		if (index < 0 && index >= size()) {
-			throw new IndexOutOfBoundsException();
-		}
-		
-		Node pNode = head;
-		while (index-- > 0) {
-			pNode = pNode.next;
-		}
-		
-		return pNode.data;
-	}
-	
-	public Object remove(int index){
-		if (index < 0 && index >= size()) {
-			throw new IndexOutOfBoundsException();
-		}
-		
-		Node pNode = head;
-		if (index == 0) {
-			head = head.next;
-			return pNode.data;
-		}
-		
-		while (--index > 0) {
-			pNode = pNode.next;
-		}
-		Node pTargetNode = pNode.next;
-		pNode.next = pTargetNode.next;
-		
-		return pTargetNode.data;
-	}
-	
-	public int size(){
-		Node pNode = head;
-		int num = 0;
-		while (pNode != null) {
-			pNode = pNode.next;
-			num++;
-		}
-		return num;
-	}
-	
-	public void addFirst(Object o){
-		add(0, o);
-	}
-	
-	public void addLast(Object o){
-		add(o);
-	}
-	
-	public Object removeFirst(){
-		if (head == null) {
-			throw new NoSuchElementException();
-		}
-		return remove(0);
-	}
-	
-	public Object removeLast(){
-		if (head == null) {
-			throw new NoSuchElementException();
-		}
-		
-		Node pNode = head;
-		Node pPrevNode = null;
-		while (pNode.next != null) {
-			pPrevNode = pNode;
-			pNode = pNode.next;
-		}
-		if (pPrevNode != null) {
-			pPrevNode.next = pNode.next;
-		}
-		else {
-			head = null;
-		}
-		return pNode.data;
-	}
-	
-	public Iterator iterator(){
-		return null;
-	}
-	
-	
-	private static  class Node{
-		Object data;
-		Node next;
-		
-	}
-}
+package com.coding.basic;
+
+import java.util.NoSuchElementException;
+
+public class LinkedList implements List {
+	
+	private Node head;
+	
+	public void add(Object o){
+		Node pNewNode = new Node();
+		pNewNode.data = o;
+		
+		Node pNode = head;
+		
+		if (head == null) {
+			head = pNewNode;
+			return;
+		}
+		
+		while (pNode.next != null) {
+			pNode = pNode.next;
+		}
+		
+		pNode.next = pNewNode;
+	}
+	
+	public void add(int index , Object o){
+		if (index < 0 && index > size()) {
+			throw new IndexOutOfBoundsException();
+		}
+		
+		Node pNewNode = new Node();
+		pNewNode.data = o;
+		
+		if (index == 0) {
+			pNewNode.next = head;
+			head = pNewNode;
+			return;
+		}
+		
+		Node pNode = head;
+		while (--index > 0) {
+			pNode = pNode.next;
+		}
+		pNewNode.next = pNode.next;
+		pNode.next = pNewNode;
+	}
+	
+	public Object get(int index){
+		if (index < 0 && index >= size()) {
+			throw new IndexOutOfBoundsException();
+		}
+		
+		Node pNode = head;
+		while (index-- > 0) {
+			pNode = pNode.next;
+		}
+		
+		return pNode.data;
+	}
+	
+	public Object remove(int index){
+		if (index < 0 && index >= size()) {
+			throw new IndexOutOfBoundsException();
+		}
+		
+		Node pNode = head;
+		if (index == 0) {
+			head = head.next;
+			return pNode.data;
+		}
+		
+		while (--index > 0) {
+			pNode = pNode.next;
+		}
+		Node pTargetNode = pNode.next;
+		pNode.next = pTargetNode.next;
+		
+		return pTargetNode.data;
+	}
+	
+	public int size(){
+		Node pNode = head;
+		int num = 0;
+		while (pNode != null) {
+			pNode = pNode.next;
+			num++;
+		}
+		return num;
+	}
+	
+	public void addFirst(Object o){
+		add(0, o);
+	}
+	
+	public void addLast(Object o){
+		add(o);
+	}
+	
+	public Object removeFirst(){
+		if (head == null) {
+			throw new NoSuchElementException();
+		}
+		return remove(0);
+	}
+	
+	public Object removeLast(){
+		if (head == null) {
+			throw new NoSuchElementException();
+		}
+		
+		Node pNode = head;
+		Node pPrevNode = null;
+		while (pNode.next != null) {
+			pPrevNode = pNode;
+			pNode = pNode.next;
+		}
+		if (pPrevNode != null) {
+			pPrevNode.next = pNode.next;
+		}
+		else {
+			head = null;
+		}
+		return pNode.data;
+	}
+	
+	public Iterator iterator(){
+		return null;
+	}
+	
+	
+	private static  class Node{
+		Object data;
+		Node next;
+		
+	}
+}
diff --git a/group08/619057560/2-26/code/com/coding/basic/List.java b/group08/619057560/2-26/code/com/coding/basic/List.java
index 396b1f641..10d13b583 100644
--- a/group08/619057560/2-26/code/com/coding/basic/List.java
+++ b/group08/619057560/2-26/code/com/coding/basic/List.java
@@ -1,9 +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();
-}
+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/group08/619057560/2-26/code/com/coding/basic/Queue.java b/group08/619057560/2-26/code/com/coding/basic/Queue.java
index 67a080f40..1d240b6ec 100644
--- a/group08/619057560/2-26/code/com/coding/basic/Queue.java
+++ b/group08/619057560/2-26/code/com/coding/basic/Queue.java
@@ -1,22 +1,22 @@
-package com.coding.basic;
-
-public class Queue {
-	
-	private LinkedList queueList = new LinkedList();
-	
-	public void enQueue(Object o){		
-		queueList.addFirst(o);
-	}
-	
-	public Object deQueue(){
-		return queueList.removeLast();
-	}
-	
-	public boolean isEmpty(){
-		return queueList.size() == 0;
-	}
-	
-	public int size(){
-		return queueList.size();
-	}
-}
+package com.coding.basic;
+
+public class Queue {
+	
+	private LinkedList queueList = new LinkedList();
+	
+	public void enQueue(Object o){		
+		queueList.addFirst(o);
+	}
+	
+	public Object deQueue(){
+		return queueList.removeLast();
+	}
+	
+	public boolean isEmpty(){
+		return queueList.size() == 0;
+	}
+	
+	public int size(){
+		return queueList.size();
+	}
+}
diff --git a/group08/619057560/2-26/code/com/coding/basic/Stack.java b/group08/619057560/2-26/code/com/coding/basic/Stack.java
index 481c88bed..03d5fa327 100644
--- a/group08/619057560/2-26/code/com/coding/basic/Stack.java
+++ b/group08/619057560/2-26/code/com/coding/basic/Stack.java
@@ -1,23 +1,23 @@
-package com.coding.basic;
-
-public class Stack {
-	private ArrayList elementData = new ArrayList();
-	
-	public void push(Object o){
-		elementData.add(o);
-	}
-	
-	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();
-	}
-}
+package com.coding.basic;
+
+public class Stack {
+	private ArrayList elementData = new ArrayList();
+	
+	public void push(Object o){
+		elementData.add(o);
+	}
+	
+	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();
+	}
+}
diff --git a/group08/729770920/2-26/src/com/coding/basic/ArrayList.java b/group08/729770920/2-26/src/com/coding/basic/ArrayList.java
index 1a7cc5a36..d5cfc1ffa 100644
--- a/group08/729770920/2-26/src/com/coding/basic/ArrayList.java
+++ b/group08/729770920/2-26/src/com/coding/basic/ArrayList.java
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
 package com.coding.basic;
 
 public class ArrayList<E> implements List<E> {
@@ -109,3 +110,116 @@ public void remove() {
         }
     }
 }
+=======
+package com.coding.basic;
+
+public class ArrayList<E> implements List<E> {
+	
+	private int size;
+	
+	private E[] data;
+	
+	public void add(E e){
+	    add(size, e);	
+	}
+
+    public ArrayList() {
+        clear();
+    }
+
+    public ArrayList(int capacity) {
+        clear();
+        ensureCapacity(capacity);
+    }
+
+	public void add(int index, E e){
+        if (index < 0 || index > size) {
+            throw new IndexOutOfBoundsException(Integer.toString(index));
+        }
+		if (data.length == size) {
+            ensureCapacity(size * 2 + 1);
+        }
+        for (int i = size++; i > index; --i) {
+            data[i] = data[i - 1];
+        }
+        data[index] = e;
+	}
+	
+	public E get(int index){
+		return data[index];
+	}
+	
+	public E remove(int index){
+        if (index < 0 || index >= size) {
+            throw new IndexOutOfBoundsException(Integer.toString(index));
+        }
+        E copy = data[index];
+        --size;
+        for (int i = index; i < size; ++i) {
+            data[i] = data[i + 1];
+        }
+        return copy;
+	}
+
+    public boolean contains(E e) {
+        for (int i = 0; i < size; ++i) {
+            if (data[i] == e) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public void clear() {
+        size = 0;
+        data = (E[]) new Object[0];
+    }
+	
+	public int size(){
+		return size;
+	}
+
+    public boolean isEmpty() {
+        return size == 0;
+    }
+	
+	public Iterator<E> iterator(){
+		return new ArrayListIterator();
+	}
+
+    public void ensureCapacity(int capacity) {
+        E[] newData = (E[]) new Object[capacity];
+        for (int i = 0; i < size; ++i) {
+            newData[i] = data[i];
+        }
+        data = newData;
+    }
+
+    public void trimToSize() {
+        E[] newData = (E[]) new Object[size];
+        for (int i = 0; i < size; ++i) {
+            newData[i] = data[i];
+        }
+        data = newData;
+    }
+
+    private class ArrayListIterator implements Iterator<E> {
+        int current = 0;
+
+        public boolean hasNext() {
+            return current < size;
+        }
+
+        public E next() {
+            if (!hasNext()) {
+                throw new java.util.NoSuchElementException();
+            }
+            return data[current++];
+        }
+
+        public void remove() {
+            ArrayList.this.remove(current);
+        }
+    }
+}
+>>>>>>> master
diff --git a/group08/729770920/2-26/src/com/coding/basic/Iterator.java b/group08/729770920/2-26/src/com/coding/basic/Iterator.java
index f0e2eddde..f432b1191 100644
--- a/group08/729770920/2-26/src/com/coding/basic/Iterator.java
+++ b/group08/729770920/2-26/src/com/coding/basic/Iterator.java
@@ -1,9 +1,9 @@
-package com.coding.basic;
-
-public interface Iterator<E> {
-	boolean hasNext();
-
-	E next();
-
-    void remove();
-}
+package com.coding.basic;
+
+public interface Iterator<E> {
+	boolean hasNext();
+
+	E next();
+
+    void remove();
+}
diff --git a/group08/729770920/2-26/src/com/coding/basic/LinkedList.java b/group08/729770920/2-26/src/com/coding/basic/LinkedList.java
index 899e0be08..6a09c84aa 100644
--- a/group08/729770920/2-26/src/com/coding/basic/LinkedList.java
+++ b/group08/729770920/2-26/src/com/coding/basic/LinkedList.java
@@ -1,164 +1,164 @@
-package com.coding.basic;
-
-public class LinkedList<E> implements List<E> {
-    private int size = 0;
-	private Node<E> head = new Node<>();
-    private Node<E> tail = new Node<>();
-	
-    public LinkedList() {
-        head.next = tail;
-        tail.prev = head;
-    }
-
-	public void add(E e) {
-        addLast(e);
-	}
-
-	public void add(int index, E e) {
-        if (index < 0 || index > size) {
-            throw new IndexOutOfBoundsException(Integer.toString(index));
-        }
-        Node<E> cursor;
-        if (index < size/2) {
-            cursor = head;
-            for (int i = 0, num = index; i < num; ++i) {
-                cursor = cursor.next;
-            }
-        } else {
-            cursor = tail.prev;
-            for (int i = 0, num = size-index; i < num; ++i) {
-                cursor = cursor.prev;
-            }
-        }
-        cursor.next = cursor.next.prev = new Node<E>(e, cursor, cursor.next);
-        ++size;
-	}
-
-	public E get(int index) {
-        if (index < 0 || index >= size) {
-            throw new IndexOutOfBoundsException(Integer.toString(index));
-        }
-        Node<E> cursor;
-        if (index < size/2) {
-            cursor = head.next;
-            for (int i = 0; i < index; ++i) {
-                cursor = cursor.next;
-            }
-        } else {
-            cursor = tail.prev;
-            for (int i = 0, num = size-index-1; i < num; ++i) {
-                cursor = cursor.prev;
-            }
-        }
-        return cursor.data;
-	}
-
-	public E remove(int index) {
-        if (index < 0 || index >= size) {
-            throw new IndexOutOfBoundsException(Integer.toString(index));
-        }
-        Node<E> cursor;
-        if (index < size/2) {
-            cursor = head.next;
-            for (int i = 0; i < index; ++i) {
-                cursor = cursor.next;
-            }
-        } else {
-            cursor = tail.prev;
-            for (int i = 0, num = size-index-1; i < num; ++i) {
-                cursor = cursor.prev;
-            }
-        }
-        cursor.prev.next = cursor.next;
-        cursor.next.prev = cursor.prev;
-        --size;
-        return cursor.data;
-	}
-	
-	public int size() {
-		return size;
-	}
-
-    public boolean isEmpty() {
-        return size == 0;
-    }
-	
-	public void addFirst(E e) {
-        add(0, e);
-	}
-
-	public void addLast(E e) {
-        add(size, e);
-	}
-
-	public E removeFirst() {
-        return remove(0);
-	}
-
-	public E removeLast() {
-        return remove(size-1);
-	}
-
-    public void clear() {
-        while (!isEmpty()) {
-            removeFirst();
-        }
-    }
-
-    public boolean contains(E e) {
-        Iterator it = this.iterator();
-        while (it.hasNext()) {
-            if (it.next() == e) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-	public Iterator iterator() {
-		return new LinkedListIterator();
-	}
-	
-	private static class Node<E> {
-		E data = null;
-        Node<E> prev = null;
-		Node<E> next = null;
-
-        public Node() {
-        }
-
-        public Node(E e, Node p, Node n) {
-            data = e;
-            prev = p;
-            next = n;
-        }
-	}
-
-    private class LinkedListIterator implements Iterator<E> {
-        Node<E> currentNode = head.next;
-
-        public boolean hasNext() {
-            return currentNode != tail;
-        }
-
-        public E next() {
-            if (!hasNext()) {
-                throw new java.util.NoSuchElementException();
-            }
-            E data = currentNode.data;
-            currentNode = currentNode.next;
-            return data;
-        }
-
-        public void remove() {
-            if (!hasNext()) {
-                throw new java.util.NoSuchElementException();
-            }
-            Node<E> nextNode = currentNode.next;
-            currentNode.next.prev = currentNode.prev;
-            currentNode.prev.next = currentNode.next;
-            currentNode = nextNode;
-            --size;
-        }
-    }
-}
+package com.coding.basic;
+
+public class LinkedList<E> implements List<E> {
+    private int size = 0;
+	private Node<E> head = new Node<>();
+    private Node<E> tail = new Node<>();
+	
+    public LinkedList() {
+        head.next = tail;
+        tail.prev = head;
+    }
+
+	public void add(E e) {
+        addLast(e);
+	}
+
+	public void add(int index, E e) {
+        if (index < 0 || index > size) {
+            throw new IndexOutOfBoundsException(Integer.toString(index));
+        }
+        Node<E> cursor;
+        if (index < size/2) {
+            cursor = head;
+            for (int i = 0, num = index; i < num; ++i) {
+                cursor = cursor.next;
+            }
+        } else {
+            cursor = tail.prev;
+            for (int i = 0, num = size-index; i < num; ++i) {
+                cursor = cursor.prev;
+            }
+        }
+        cursor.next = cursor.next.prev = new Node<E>(e, cursor, cursor.next);
+        ++size;
+	}
+
+	public E get(int index) {
+        if (index < 0 || index >= size) {
+            throw new IndexOutOfBoundsException(Integer.toString(index));
+        }
+        Node<E> cursor;
+        if (index < size/2) {
+            cursor = head.next;
+            for (int i = 0; i < index; ++i) {
+                cursor = cursor.next;
+            }
+        } else {
+            cursor = tail.prev;
+            for (int i = 0, num = size-index-1; i < num; ++i) {
+                cursor = cursor.prev;
+            }
+        }
+        return cursor.data;
+	}
+
+	public E remove(int index) {
+        if (index < 0 || index >= size) {
+            throw new IndexOutOfBoundsException(Integer.toString(index));
+        }
+        Node<E> cursor;
+        if (index < size/2) {
+            cursor = head.next;
+            for (int i = 0; i < index; ++i) {
+                cursor = cursor.next;
+            }
+        } else {
+            cursor = tail.prev;
+            for (int i = 0, num = size-index-1; i < num; ++i) {
+                cursor = cursor.prev;
+            }
+        }
+        cursor.prev.next = cursor.next;
+        cursor.next.prev = cursor.prev;
+        --size;
+        return cursor.data;
+	}
+	
+	public int size() {
+		return size;
+	}
+
+    public boolean isEmpty() {
+        return size == 0;
+    }
+	
+	public void addFirst(E e) {
+        add(0, e);
+	}
+
+	public void addLast(E e) {
+        add(size, e);
+	}
+
+	public E removeFirst() {
+        return remove(0);
+	}
+
+	public E removeLast() {
+        return remove(size-1);
+	}
+
+    public void clear() {
+        while (!isEmpty()) {
+            removeFirst();
+        }
+    }
+
+    public boolean contains(E e) {
+        Iterator it = this.iterator();
+        while (it.hasNext()) {
+            if (it.next() == e) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+	public Iterator iterator() {
+		return new LinkedListIterator();
+	}
+	
+	private static class Node<E> {
+		E data = null;
+        Node<E> prev = null;
+		Node<E> next = null;
+
+        public Node() {
+        }
+
+        public Node(E e, Node p, Node n) {
+            data = e;
+            prev = p;
+            next = n;
+        }
+	}
+
+    private class LinkedListIterator implements Iterator<E> {
+        Node<E> currentNode = head.next;
+
+        public boolean hasNext() {
+            return currentNode != tail;
+        }
+
+        public E next() {
+            if (!hasNext()) {
+                throw new java.util.NoSuchElementException();
+            }
+            E data = currentNode.data;
+            currentNode = currentNode.next;
+            return data;
+        }
+
+        public void remove() {
+            if (!hasNext()) {
+                throw new java.util.NoSuchElementException();
+            }
+            Node<E> nextNode = currentNode.next;
+            currentNode.next.prev = currentNode.prev;
+            currentNode.prev.next = currentNode.next;
+            currentNode = nextNode;
+            --size;
+        }
+    }
+}
diff --git a/group08/729770920/2-26/src/com/coding/basic/List.java b/group08/729770920/2-26/src/com/coding/basic/List.java
index babed5a71..de1390d24 100644
--- a/group08/729770920/2-26/src/com/coding/basic/List.java
+++ b/group08/729770920/2-26/src/com/coding/basic/List.java
@@ -1,19 +1,19 @@
-package com.coding.basic;
-
-public interface List<E> {
-	void add(E e);
-
-	void add(int index, E e);
-
-    void clear();
-
-	E get(int index);
-
-	E remove(int index);
-
-	int size();
-
-    boolean contains(E e);
-
-    Iterator<E> iterator();
-}
+package com.coding.basic;
+
+public interface List<E> {
+	void add(E e);
+
+	void add(int index, E e);
+
+    void clear();
+
+	E get(int index);
+
+	E remove(int index);
+
+	int size();
+
+    boolean contains(E e);
+
+    Iterator<E> iterator();
+}
diff --git a/group08/729770920/2-26/src/com/coding/basic/Queue.java b/group08/729770920/2-26/src/com/coding/basic/Queue.java
index a660ad672..c53fc8ed0 100644
--- a/group08/729770920/2-26/src/com/coding/basic/Queue.java
+++ b/group08/729770920/2-26/src/com/coding/basic/Queue.java
@@ -1,21 +1,21 @@
-package com.coding.basic;
-
-public class Queue<E> {
-    private LinkedList<E> data = new LinkedList<>();
-    
-    public void enQueue(E e){
-        data.addFirst(e);
-    }
-    
-    public Object deQueue() {
-        return data.removeLast();
-    }
-    
-    public boolean isEmpty() {
-        return data.size() == 0;
-    }
-
-    public int size(){
-        return data.size();
-    }
-}
+package com.coding.basic;
+
+public class Queue<E> {
+    private LinkedList<E> data = new LinkedList<>();
+    
+    public void enQueue(E e){
+        data.addFirst(e);
+    }
+    
+    public Object deQueue() {
+        return data.removeLast();
+    }
+    
+    public boolean isEmpty() {
+        return data.size() == 0;
+    }
+
+    public int size(){
+        return data.size();
+    }
+}
diff --git a/group08/729770920/2-26/src/com/coding/basic/Stack.java b/group08/729770920/2-26/src/com/coding/basic/Stack.java
index c7e7773de..950b09e03 100644
--- a/group08/729770920/2-26/src/com/coding/basic/Stack.java
+++ b/group08/729770920/2-26/src/com/coding/basic/Stack.java
@@ -1,25 +1,25 @@
-package com.coding.basic;
-
-public class Stack<E> {
-    private LinkedList<E> data = new LinkedList<>();
-
-    public void push(E e) {        
-        data.addFirst(e);
-    }
-    
-    public Object pop() {
-        return data.removeFirst();
-    }
-    
-    public Object peek() {
-        return data.get(0);
-    }
-
-    public boolean isEmpty() {
-        return data.size() == 0;
-    }
-
-    public int size() {
-        return data.size();
-    }
-}
+package com.coding.basic;
+
+public class Stack<E> {
+    private LinkedList<E> data = new LinkedList<>();
+
+    public void push(E e) {        
+        data.addFirst(e);
+    }
+    
+    public Object pop() {
+        return data.removeFirst();
+    }
+    
+    public Object peek() {
+        return data.get(0);
+    }
+
+    public boolean isEmpty() {
+        return data.size() == 0;
+    }
+
+    public int size() {
+        return data.size();
+    }
+}
diff --git a/group12/2258659044/zj-2017/src/com/coding/basic/ArrayList.java b/group12/2258659044/zj-2017/src/com/coding/basic/ArrayList.java
index 5de89da95..a30b20928 100644
--- a/group12/2258659044/zj-2017/src/com/coding/basic/ArrayList.java
+++ b/group12/2258659044/zj-2017/src/com/coding/basic/ArrayList.java
@@ -1,94 +1,94 @@
-package com.coding.basic;
-
-import java.util.NoSuchElementException;
-
-public class ArrayList implements List {
-	
-	private int size = 0;	
-	/*扩容因子*/
-	private static final int GENE = 10;
-	
-	private Object[] elementData = new Object[10];	
-	/*扩容引用*/
-	private Object[] newElementData;
-	
-	public void add(Object o){
-		grow();
-		elementData[size] = o;		
-		size ++;
-	}
-	public void add(int index, Object o){
-		
-		if(index>size){
-			throw new IndexOutOfBoundsException("Index: "+index+",Size:"+size);
-		}
-		grow(); 
-		if(index<size){//长度足够需要移动
-			newElementData = new Object[elementData.length];
-			System.arraycopy(elementData, 0, newElementData, 0, index);
-			System.arraycopy(elementData, index, newElementData, index+1, size-index);
-			elementData = newElementData;
-		}
-		elementData[index] = o;	
-		size ++;
-	}
-	
-	public Object get(int index){
-		
-		if(index>size){
-			throw new IndexOutOfBoundsException("Index: "+index+",Size:"+size);
-		}
-		return elementData[index];
-	}
-	
-	public Object remove(int index){
-		
-		Object o = elementData[index];
-		System.arraycopy(elementData, index+1, elementData, index, size-(index+1));		
-		size --;
-		return o;
-	}
-	
-	public int size(){
-		return size;
-	}
-			
-	/**
-	 * 扩容，扩容因子为10
-	 */
-	private void grow(){
-		
-		if(size>=elementData.length){//长度不够需要扩容
-			newElementData = new Object[size+GENE];
-			System.arraycopy(elementData, 0, newElementData, 0, elementData.length);
-			elementData = newElementData;		
-		}		
-	}
-	
-	
-    public Iterator iterator(){
-		
-		return new Itr();
-	}
-    
-    private class Itr implements Iterator{
-
-    	int cursor;   	
-		@Override
-		public boolean hasNext() {
-			return cursor != ArrayList.this.size;
-		}
-
-		@Override
-		public Object next() {
-			
-			int i = this.cursor;
-			if (i >= ArrayList.this.size){
-				throw new NoSuchElementException();
-			}			
-			this.cursor = (i + 1);
-			return ArrayList.this.elementData[i];
-		}
-    	
-    }
-}
+package com.coding.basic;
+
+import java.util.NoSuchElementException;
+
+public class ArrayList implements List {
+	
+	private int size = 0;	
+	/*扩容因子*/
+	private static final int GENE = 10;
+	
+	private Object[] elementData = new Object[10];	
+	/*扩容引用*/
+	private Object[] newElementData;
+	
+	public void add(Object o){
+		grow();
+		elementData[size] = o;		
+		size ++;
+	}
+	public void add(int index, Object o){
+		
+		if(index>size){
+			throw new IndexOutOfBoundsException("Index: "+index+",Size:"+size);
+		}
+		grow(); 
+		if(index<size){//长度足够需要移动
+			newElementData = new Object[elementData.length];
+			System.arraycopy(elementData, 0, newElementData, 0, index);
+			System.arraycopy(elementData, index, newElementData, index+1, size-index);
+			elementData = newElementData;
+		}
+		elementData[index] = o;	
+		size ++;
+	}
+	
+	public Object get(int index){
+		
+		if(index>size){
+			throw new IndexOutOfBoundsException("Index: "+index+",Size:"+size);
+		}
+		return elementData[index];
+	}
+	
+	public Object remove(int index){
+		
+		Object o = elementData[index];
+		System.arraycopy(elementData, index+1, elementData, index, size-(index+1));		
+		size --;
+		return o;
+	}
+	
+	public int size(){
+		return size;
+	}
+			
+	/**
+	 * 扩容，扩容因子为10
+	 */
+	private void grow(){
+		
+		if(size>=elementData.length){//长度不够需要扩容
+			newElementData = new Object[size+GENE];
+			System.arraycopy(elementData, 0, newElementData, 0, elementData.length);
+			elementData = newElementData;		
+		}		
+	}
+	
+	
+    public Iterator iterator(){
+		
+		return new Itr();
+	}
+    
+    private class Itr implements Iterator{
+
+    	int cursor;   	
+		@Override
+		public boolean hasNext() {
+			return cursor != ArrayList.this.size;
+		}
+
+		@Override
+		public Object next() {
+			
+			int i = this.cursor;
+			if (i >= ArrayList.this.size){
+				throw new NoSuchElementException();
+			}			
+			this.cursor = (i + 1);
+			return ArrayList.this.elementData[i];
+		}
+    	
+    }
+}
diff --git a/group12/2258659044/zj-2017/src/com/coding/basic/BinaryTree.java b/group12/2258659044/zj-2017/src/com/coding/basic/BinaryTree.java
index e5fae5020..344951719 100644
--- a/group12/2258659044/zj-2017/src/com/coding/basic/BinaryTree.java
+++ b/group12/2258659044/zj-2017/src/com/coding/basic/BinaryTree.java
@@ -1,64 +1,64 @@
-package com.coding.basic;
-
-public class BinaryTree {
-	
-	//根节点
-	private BinaryTreeNode root;	
-	    
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	public <T extends Comparable<? super T>> BinaryTreeNode insert(T o){
-		
-		BinaryTreeNode treeNode = new BinaryTreeNode();
-		treeNode.setData(o);
-		if(root == null){
-			root =  treeNode;
-		}else{				
-			BinaryTreeNode currentNode = root;
-			BinaryTreeNode parent;
-			while(true){
-				parent = currentNode;
-				if(((Comparable)currentNode.getData()).compareTo(o)>0){//向左放					
-					currentNode = currentNode.getLeft();
-					if(currentNode == null){
-						parent.setLeft(treeNode);
-						treeNode.setParent(parent);
-						break;
-					}					
-				}else{//向右放
-					currentNode = currentNode.getRight();
-					if(currentNode == null){
-						parent.setRight(treeNode);
-						treeNode.setParent(parent);
-						break;
-					}
-				}
-			}			
-		}
-		return treeNode;
-	}
-
-	/**
-	 * 先序遍历
-	 * @param node
-	 * @return
-	 */
-	public List traversalBefore(BinaryTreeNode node){
-		//所有数据集合
-	    List datas = new ArrayList();
-	    return traversal(node,datas);
-	}
-	private List traversal(BinaryTreeNode node,List datas){
-		
-		if(node !=null){
-			datas.add(node.getData());
-			traversal(node.getLeft(),datas);
-			traversal(node.getRight(),datas);
-		}
-		return datas;
-	}
-
-	public BinaryTreeNode getRoot() {
-		return root;
-	}
-		
-}
+package com.coding.basic;
+
+public class BinaryTree {
+	
+	//根节点
+	private BinaryTreeNode root;	
+	    
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public <T extends Comparable<? super T>> BinaryTreeNode insert(T o){
+		
+		BinaryTreeNode treeNode = new BinaryTreeNode();
+		treeNode.setData(o);
+		if(root == null){
+			root =  treeNode;
+		}else{				
+			BinaryTreeNode currentNode = root;
+			BinaryTreeNode parent;
+			while(true){
+				parent = currentNode;
+				if(((Comparable)currentNode.getData()).compareTo(o)>0){//向左放					
+					currentNode = currentNode.getLeft();
+					if(currentNode == null){
+						parent.setLeft(treeNode);
+						treeNode.setParent(parent);
+						break;
+					}					
+				}else{//向右放
+					currentNode = currentNode.getRight();
+					if(currentNode == null){
+						parent.setRight(treeNode);
+						treeNode.setParent(parent);
+						break;
+					}
+				}
+			}			
+		}
+		return treeNode;
+	}
+
+	/**
+	 * 先序遍历
+	 * @param node
+	 * @return
+	 */
+	public List traversalBefore(BinaryTreeNode node){
+		//所有数据集合
+	    List datas = new ArrayList();
+	    return traversal(node,datas);
+	}
+	private List traversal(BinaryTreeNode node,List datas){
+		
+		if(node !=null){
+			datas.add(node.getData());
+			traversal(node.getLeft(),datas);
+			traversal(node.getRight(),datas);
+		}
+		return datas;
+	}
+
+	public BinaryTreeNode getRoot() {
+		return root;
+	}
+		
+}
diff --git a/group12/2258659044/zj-2017/src/com/coding/basic/BinaryTreeNode.java b/group12/2258659044/zj-2017/src/com/coding/basic/BinaryTreeNode.java
index 557728a02..a8e6b66ed 100644
--- a/group12/2258659044/zj-2017/src/com/coding/basic/BinaryTreeNode.java
+++ b/group12/2258659044/zj-2017/src/com/coding/basic/BinaryTreeNode.java
@@ -1,37 +1,37 @@
-package com.coding.basic;
-public class BinaryTreeNode {
-	
-	private Object data;
-	//父节点
-	private BinaryTreeNode parent;
-	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 getParent() {
-		return parent;
-	}
-	public void setParent(BinaryTreeNode parent) {
-		this.parent = parent;
-	}
-}
+package com.coding.basic;
+public class BinaryTreeNode {
+	
+	private Object data;
+	//父节点
+	private BinaryTreeNode parent;
+	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 getParent() {
+		return parent;
+	}
+	public void setParent(BinaryTreeNode parent) {
+		this.parent = parent;
+	}
+}
diff --git a/group12/2258659044/zj-2017/src/test/com/coding/basic/BinaryTreeTest.java b/group12/2258659044/zj-2017/src/test/com/coding/basic/BinaryTreeTest.java
index 0f343ed89..1357cf17c 100644
--- a/group12/2258659044/zj-2017/src/test/com/coding/basic/BinaryTreeTest.java
+++ b/group12/2258659044/zj-2017/src/test/com/coding/basic/BinaryTreeTest.java
@@ -1,58 +1,58 @@
-package test.com.coding.basic;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.coding.basic.BinaryTree;
-import com.coding.basic.BinaryTreeNode;
-import com.coding.basic.List;
-
-public class BinaryTreeTest {
-
-	BinaryTree tree ;
-	
-	@Before
-    public void setup() {
-		
-		tree = new BinaryTree();
-		Assert.assertEquals(tree.getRoot(), null);
-		tree.insert(5);
-		tree.insert(2);
-		tree.insert(7);
-		tree.insert(1);
-		tree.insert(6);
-    }
-	@Test
-	public void insert(){
-		
-		BinaryTreeNode  node = tree.insert(4);
-		Assert.assertEquals(node.getParent().getData(), 2);
-		Assert.assertEquals(node.getParent().getLeft().getData(), 1);
-		
-		BinaryTreeNode node2 = tree.insert(8);
-		Assert.assertEquals(node2.getParent().getData(), 7);
-		Assert.assertEquals(node2.getParent().getLeft().getData(), 6);
-	}
-	
-	@Test
-	public void traversal(){
-		
-		insert();
-		//以根节点为起点先序遍历
-		List  treeList = tree.traversalBefore(tree.getRoot());
-		//expected value
-		int[] exValue = {5,2,1,4,7,6,8};
-		for (int i = 0; i < exValue.length; i++) {
-			Assert.assertEquals(treeList.get(i),exValue[i]);
-		}
-		
-		//以数据2位起点先序遍历
-		List  treeList2 = tree.traversalBefore(tree.getRoot().getLeft());
-		//expected value
-		int[] exValue2 = {2,1,4};
-		for (int i = 0; i < exValue2.length; i++) {
-			Assert.assertEquals(treeList2.get(i),exValue2[i]);
-		}
-	}
-}
+package test.com.coding.basic;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.coding.basic.BinaryTree;
+import com.coding.basic.BinaryTreeNode;
+import com.coding.basic.List;
+
+public class BinaryTreeTest {
+
+	BinaryTree tree ;
+	
+	@Before
+    public void setup() {
+		
+		tree = new BinaryTree();
+		Assert.assertEquals(tree.getRoot(), null);
+		tree.insert(5);
+		tree.insert(2);
+		tree.insert(7);
+		tree.insert(1);
+		tree.insert(6);
+    }
+	@Test
+	public void insert(){
+		
+		BinaryTreeNode  node = tree.insert(4);
+		Assert.assertEquals(node.getParent().getData(), 2);
+		Assert.assertEquals(node.getParent().getLeft().getData(), 1);
+		
+		BinaryTreeNode node2 = tree.insert(8);
+		Assert.assertEquals(node2.getParent().getData(), 7);
+		Assert.assertEquals(node2.getParent().getLeft().getData(), 6);
+	}
+	
+	@Test
+	public void traversal(){
+		
+		insert();
+		//以根节点为起点先序遍历
+		List  treeList = tree.traversalBefore(tree.getRoot());
+		//expected value
+		int[] exValue = {5,2,1,4,7,6,8};
+		for (int i = 0; i < exValue.length; i++) {
+			Assert.assertEquals(treeList.get(i),exValue[i]);
+		}
+		
+		//以数据2位起点先序遍历
+		List  treeList2 = tree.traversalBefore(tree.getRoot().getLeft());
+		//expected value
+		int[] exValue2 = {2,1,4};
+		for (int i = 0; i < exValue2.length; i++) {
+			Assert.assertEquals(treeList2.get(i),exValue2[i]);
+		}
+	}
+}
diff --git a/group12/2258659044/zj-2017/src/test/com/coding/basic/LinkedListTest.java b/group12/2258659044/zj-2017/src/test/com/coding/basic/LinkedListTest.java
index a55b2d5a3..3a5ff822a 100644
--- a/group12/2258659044/zj-2017/src/test/com/coding/basic/LinkedListTest.java
+++ b/group12/2258659044/zj-2017/src/test/com/coding/basic/LinkedListTest.java
@@ -1,109 +1,109 @@
-package test.com.coding.basic;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.coding.basic.Iterator;
-import com.coding.basic.LinkedList;
-
-public class LinkedListTest {
-
-	LinkedList ls ;
-	@Before
-    public void setup() {
-        ls = new LinkedList();       
-    }
-	
-	/**
-	 * 测试一个参数的add方法
-	 * ArrayList当数据超过10时进行第一次扩容
-	 */
-	@Test
-	public void add(){
-		
-		ls.add(3);
-		ls.add("a");
-		for (int i = 0; i < 10; i++) {
-			ls.add(i);
-		}
-		Assert.assertEquals(ls.size(), 12);
-		Assert.assertEquals(ls.get(1), "a");
-	}
-
-	/**
-	 *  两个参数的add方法
-	 */
-	@Test//(expected = IndexOutOfBoundsException.class)
-	public void add4ToPramter(){
-		
-		ls.add(0, 0);
-		ls.add(1,1);
-		ls.add(2, 2);
-		ls.add(3,3);
-		for (int i = 0; i < 10; i++) {
-			ls.add(3,i);
-		}
-		Assert.assertEquals(ls.size(), 14);
-		Assert.assertEquals(ls.get(3), 9);
-		Assert.assertEquals(ls.get(13), 3);
-		//打开下面操作抛出异常
-		//ls.add(15, "a");
-	}
-
-	/**
-	 * get(i)
-	 */
-	@Test//(expected = IndexOutOfBoundsException.class)
-	public void get(){
-		
-		for (int i = 0; i < 10; i++) {
-			ls.add(i);
-		}
-		
-		Assert.assertEquals(ls.get(9), 9);	
-		//打开下面操作抛出异常
-		//ls.get(12);
-	}
-	
-	@Test
-	public void remove(){
-		
-		for (int i = 0; i < 10; i++) {
-			ls.add(i);
-		}	
-		Assert.assertEquals(ls.remove(5),5);
-		Assert.assertEquals(ls.size(),9);
-		Assert.assertEquals(ls.remove(8),9);
-		Assert.assertEquals(ls.size(),8);
-	}
-	
-	@Test
-	public void size(){
-		
-		Assert.assertEquals(ls.size(),0);
-		ls.add("a");
-		Assert.assertEquals(ls.size(),1);
-		ls.add(0,0);
-		Assert.assertEquals(ls.size(),2);
-		ls.remove(0);
-		Assert.assertEquals(ls.size(),1);
-		
-	}
-	
-	@Test//(expected = NoSuchElementException.class)
-	public void iterator(){
-		
-		for (int i = 0; i < 10; i++) {
-			ls.add(i);
-		}
-		Iterator it = ls.iterator();
-		Assert.assertEquals(it.hasNext(),true);
-		for (int i = 0; i < 10; i++) {
-			it.next();
-		}		
-		Assert.assertEquals(it.hasNext(),false);
-		//打开下面操作抛出异常
-		//it.next();
-	}
-}
+package test.com.coding.basic;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.coding.basic.Iterator;
+import com.coding.basic.LinkedList;
+
+public class LinkedListTest {
+
+	LinkedList ls ;
+	@Before
+    public void setup() {
+        ls = new LinkedList();       
+    }
+	
+	/**
+	 * 测试一个参数的add方法
+	 * ArrayList当数据超过10时进行第一次扩容
+	 */
+	@Test
+	public void add(){
+		
+		ls.add(3);
+		ls.add("a");
+		for (int i = 0; i < 10; i++) {
+			ls.add(i);
+		}
+		Assert.assertEquals(ls.size(), 12);
+		Assert.assertEquals(ls.get(1), "a");
+	}
+
+	/**
+	 *  两个参数的add方法
+	 */
+	@Test//(expected = IndexOutOfBoundsException.class)
+	public void add4ToPramter(){
+		
+		ls.add(0, 0);
+		ls.add(1,1);
+		ls.add(2, 2);
+		ls.add(3,3);
+		for (int i = 0; i < 10; i++) {
+			ls.add(3,i);
+		}
+		Assert.assertEquals(ls.size(), 14);
+		Assert.assertEquals(ls.get(3), 9);
+		Assert.assertEquals(ls.get(13), 3);
+		//打开下面操作抛出异常
+		//ls.add(15, "a");
+	}
+
+	/**
+	 * get(i)
+	 */
+	@Test//(expected = IndexOutOfBoundsException.class)
+	public void get(){
+		
+		for (int i = 0; i < 10; i++) {
+			ls.add(i);
+		}
+		
+		Assert.assertEquals(ls.get(9), 9);	
+		//打开下面操作抛出异常
+		//ls.get(12);
+	}
+	
+	@Test
+	public void remove(){
+		
+		for (int i = 0; i < 10; i++) {
+			ls.add(i);
+		}	
+		Assert.assertEquals(ls.remove(5),5);
+		Assert.assertEquals(ls.size(),9);
+		Assert.assertEquals(ls.remove(8),9);
+		Assert.assertEquals(ls.size(),8);
+	}
+	
+	@Test
+	public void size(){
+		
+		Assert.assertEquals(ls.size(),0);
+		ls.add("a");
+		Assert.assertEquals(ls.size(),1);
+		ls.add(0,0);
+		Assert.assertEquals(ls.size(),2);
+		ls.remove(0);
+		Assert.assertEquals(ls.size(),1);
+		
+	}
+	
+	@Test//(expected = NoSuchElementException.class)
+	public void iterator(){
+		
+		for (int i = 0; i < 10; i++) {
+			ls.add(i);
+		}
+		Iterator it = ls.iterator();
+		Assert.assertEquals(it.hasNext(),true);
+		for (int i = 0; i < 10; i++) {
+			it.next();
+		}		
+		Assert.assertEquals(it.hasNext(),false);
+		//打开下面操作抛出异常
+		//it.next();
+	}
+}
diff --git a/group12/2258659044/zj-2017/src/test/com/coding/basic/QueueTest.java b/group12/2258659044/zj-2017/src/test/com/coding/basic/QueueTest.java
index e688d9b41..75af57b37 100644
--- a/group12/2258659044/zj-2017/src/test/com/coding/basic/QueueTest.java
+++ b/group12/2258659044/zj-2017/src/test/com/coding/basic/QueueTest.java
@@ -1,64 +1,64 @@
-package test.com.coding.basic;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.coding.basic.Queue;
-
-public class QueueTest {
-
-	Queue qe ;
-	
-	@Before
-    public void setup() {
-		qe = new Queue();
-		for (int i = 0; i < 10; i++) {
-			qe.enQueue(i);
-		}		
-    }
-
-	@Test
-	public void enQueue(){
-		
-		Assert.assertEquals(qe.size(), 10);
-		qe.enQueue("abcd");
-		Assert.assertEquals(qe.size(), 11);
-	}
-	
-	@Test//(expected = IndexOutOfBoundsException.class)
-	public void deQueue(){
-		
-		Assert.assertEquals(qe.size(), 10);		
-		for (int i = 0; i < 10; i++) {
-			Assert.assertEquals(qe.deQueue(), i);
-		}
-		Assert.assertEquals(qe.size(), 0);
-		//打开下列语句与期望异常测试
-		//qe.deQueue();
-	}
-	
-	public void isEmpty(){
-		
-		Assert.assertEquals(qe.isEmpty(),false);
-		for (int i = 0; i < 10; i++) {
-			qe.deQueue();
-		}
-		Assert.assertEquals(qe.isEmpty(),true);
-		Queue qe1 = new Queue();
-		Assert.assertEquals(qe1.isEmpty(), true);
-	}
-	
-	public void size(){
-		
-		Assert.assertEquals(qe.size(),10);
-		qe.enQueue("lk");
-		qe.enQueue('h');
-		Assert.assertEquals(qe.size(),12);
-		for (int i = 0; i < 12; i++) {
-			qe.deQueue();
-		}
-		Assert.assertEquals(qe.size(),0);
-		Queue qe1 = new Queue();
-		Assert.assertEquals(qe1.size(), 0);
-	}
-}
+package test.com.coding.basic;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.coding.basic.Queue;
+
+public class QueueTest {
+
+	Queue qe ;
+	
+	@Before
+    public void setup() {
+		qe = new Queue();
+		for (int i = 0; i < 10; i++) {
+			qe.enQueue(i);
+		}		
+    }
+
+	@Test
+	public void enQueue(){
+		
+		Assert.assertEquals(qe.size(), 10);
+		qe.enQueue("abcd");
+		Assert.assertEquals(qe.size(), 11);
+	}
+	
+	@Test//(expected = IndexOutOfBoundsException.class)
+	public void deQueue(){
+		
+		Assert.assertEquals(qe.size(), 10);		
+		for (int i = 0; i < 10; i++) {
+			Assert.assertEquals(qe.deQueue(), i);
+		}
+		Assert.assertEquals(qe.size(), 0);
+		//打开下列语句与期望异常测试
+		//qe.deQueue();
+	}
+	
+	public void isEmpty(){
+		
+		Assert.assertEquals(qe.isEmpty(),false);
+		for (int i = 0; i < 10; i++) {
+			qe.deQueue();
+		}
+		Assert.assertEquals(qe.isEmpty(),true);
+		Queue qe1 = new Queue();
+		Assert.assertEquals(qe1.isEmpty(), true);
+	}
+	
+	public void size(){
+		
+		Assert.assertEquals(qe.size(),10);
+		qe.enQueue("lk");
+		qe.enQueue('h');
+		Assert.assertEquals(qe.size(),12);
+		for (int i = 0; i < 12; i++) {
+			qe.deQueue();
+		}
+		Assert.assertEquals(qe.size(),0);
+		Queue qe1 = new Queue();
+		Assert.assertEquals(qe1.size(), 0);
+	}
+}
diff --git a/group12/2258659044/zj-2017/src/test/com/coding/basic/StackTest.java b/group12/2258659044/zj-2017/src/test/com/coding/basic/StackTest.java
index a0875c8f3..5d9fcd0f1 100644
--- a/group12/2258659044/zj-2017/src/test/com/coding/basic/StackTest.java
+++ b/group12/2258659044/zj-2017/src/test/com/coding/basic/StackTest.java
@@ -1,76 +1,76 @@
-package test.com.coding.basic;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.coding.basic.Stack;
-
-public class StackTest {
-
-	Stack st ;
-	
-	@Before
-    public void setup() {
-		st = new Stack();
-		for (int i = 0; i < 10; i++) {
-			st.push(i);
-		}		
-    }
-
-	@Test
-	public void push(){
-		
-		Assert.assertEquals(st.size(), 10);
-		st.push(10);
-		st.push('a');
-		Assert.assertEquals(st.size(), 12);
-	}
-	
-	@Test//(expected = IndexOutOfBoundsException.class)
-	public void pop(){
-		
-		Assert.assertEquals(st.size(), 10);
-		for (int i = 9; i >= 0; i--) {
-			Assert.assertEquals(st.pop(), i);
-		}
-		//打开下列语句抛出期望异常
-		//st.pop();
-	}
-	
-	@Test
-	public void peek(){
-		
-		Assert.assertEquals(st.size(), 10);
-		Assert.assertEquals(st.peek(), 9);
-		Assert.assertEquals(st.size(), 10);
-	}
-	
-	@Test
-	public void isEmpty(){
-		
-		Assert.assertEquals(st.isEmpty(), false);
-		for (int i = 0; i < 10; i++) {
-			st.pop();
-		}
-		Assert.assertEquals(st.isEmpty(), true);
-		Stack st1 = new Stack();
-		Assert.assertEquals(st1.isEmpty(), true);
-	}
-	
-    public void size(){
-		
-		Assert.assertEquals(st.size(),10);
-		st.push("lk");
-		st.push('h');
-		Assert.assertEquals(st.size(),12);
-		for (int i = 0; i < 12; i++) {
-			st.pop();
-		}
-		Assert.assertEquals(st.size(),0);
-		st.peek();
-		Assert.assertEquals(st.size(),0);
-		Stack st1 = new Stack();
-		Assert.assertEquals(st1.size(), 0);
-	}
-}
+package test.com.coding.basic;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.coding.basic.Stack;
+
+public class StackTest {
+
+	Stack st ;
+	
+	@Before
+    public void setup() {
+		st = new Stack();
+		for (int i = 0; i < 10; i++) {
+			st.push(i);
+		}		
+    }
+
+	@Test
+	public void push(){
+		
+		Assert.assertEquals(st.size(), 10);
+		st.push(10);
+		st.push('a');
+		Assert.assertEquals(st.size(), 12);
+	}
+	
+	@Test//(expected = IndexOutOfBoundsException.class)
+	public void pop(){
+		
+		Assert.assertEquals(st.size(), 10);
+		for (int i = 9; i >= 0; i--) {
+			Assert.assertEquals(st.pop(), i);
+		}
+		//打开下列语句抛出期望异常
+		//st.pop();
+	}
+	
+	@Test
+	public void peek(){
+		
+		Assert.assertEquals(st.size(), 10);
+		Assert.assertEquals(st.peek(), 9);
+		Assert.assertEquals(st.size(), 10);
+	}
+	
+	@Test
+	public void isEmpty(){
+		
+		Assert.assertEquals(st.isEmpty(), false);
+		for (int i = 0; i < 10; i++) {
+			st.pop();
+		}
+		Assert.assertEquals(st.isEmpty(), true);
+		Stack st1 = new Stack();
+		Assert.assertEquals(st1.isEmpty(), true);
+	}
+	
+    public void size(){
+		
+		Assert.assertEquals(st.size(),10);
+		st.push("lk");
+		st.push('h');
+		Assert.assertEquals(st.size(),12);
+		for (int i = 0; i < 12; i++) {
+			st.pop();
+		}
+		Assert.assertEquals(st.size(),0);
+		st.peek();
+		Assert.assertEquals(st.size(),0);
+		Stack st1 = new Stack();
+		Assert.assertEquals(st1.size(), 0);
+	}
+}
diff --git a/group12/251822722/ArrayList.java b/group12/251822722/ArrayList.java
old mode 100755
new mode 100644
diff --git a/group12/251822722/BinaryTreeNode.java b/group12/251822722/BinaryTreeNode.java
old mode 100755
new mode 100644
diff --git a/group12/251822722/Iterator.java b/group12/251822722/Iterator.java
old mode 100755
new mode 100644
diff --git a/group12/251822722/LinkedList.java b/group12/251822722/LinkedList.java
old mode 100755
new mode 100644
diff --git a/group12/251822722/List.java b/group12/251822722/List.java
old mode 100755
new mode 100644
diff --git a/group12/251822722/Queue.java b/group12/251822722/Queue.java
old mode 100755
new mode 100644
diff --git a/group12/251822722/Stack.java b/group12/251822722/Stack.java
old mode 100755
new mode 100644
diff --git a/group12/377401843/learning_1/.gitignore b/group12/377401843/learning_1/.gitignore
index 9c47ca7e5..b12088665 100644
--- a/group12/377401843/learning_1/.gitignore
+++ b/group12/377401843/learning_1/.gitignore
@@ -1,3 +1,3 @@
-/bin/
+/bin/
 /.project
 /.classpath
diff --git a/group12/377401843/learning_1/src/com/guodong/datastructure/ArrayList.java b/group12/377401843/learning_1/src/com/guodong/datastructure/ArrayList.java
index a1ee0ee33..880af45da 100644
--- a/group12/377401843/learning_1/src/com/guodong/datastructure/ArrayList.java
+++ b/group12/377401843/learning_1/src/com/guodong/datastructure/ArrayList.java
@@ -1,171 +1,171 @@
-package com.guodong.datastructure;
-
-import java.util.Arrays;
-
-public class ArrayList implements List {
-
-	private int size = 0;
-
-	private Object[] elementData = new Object[100];
-	
-	/**
-	 * 按下标顺序新增元素
-	 *
-	 * @Method add
-	 * @param o
-	 * @see com.guodong.datastructure.List#add(java.lang.Object)
-	 */
-	public void add(Object o) {
-		ensureCapacityInternal(size + 1);
-		elementData[size] = o;
-		size++;
-	}
-
-	/**
-	 * 在指定下标位置插入元素
-	 *
-	 * @Method add
-	 * @param index
-	 * @param o
-	 * @see com.guodong.datastructure.List#add(int, java.lang.Object)
-	 */
-	public void add(int index, Object o) {
-		checkRangeForAdd(index);
-		
-		ensureCapacityInternal(size + 1);
-		
-		System.arraycopy(elementData, index, elementData, index + 1, size - index);
-		
-		elementData[index] = o;
-		size++;
-	}
-
-	/**
-	 * 根据下标获取列表数据 
-	 *
-	 * @Method get
-	 * @param index
-	 * @return
-	 * @see com.guodong.datastructure.List#get(int)
-	 */
-	public Object get(int index) {
-		checkRangeForGetOrRemove(index);
-		
-		return elementData[index];
-	}
-
-	/**
-	 * 根据下标移除元素，并返回移除的元素值
-	 *
-	 * @Method remove
-	 * @param index
-	 * @return
-	 * @see com.guodong.datastructure.List#remove(int)
-	 */
-	public Object remove(int index) {
-		checkRangeForGetOrRemove(index);
-		
-		Object oldValue = elementData[index];
-		
-		System.arraycopy(elementData, index + 1, elementData, index, size - index -1);
-		
-		size--;
-		elementData[size] = null;
-		
-		return oldValue;
-	}
-
-	/**
-	 * 获得列表长度
-	 *
-	 * @Method size
-	 * @return
-	 * @see com.guodong.datastructure.List#size()
-	 */
-	public int size() {
-		return size;
-	}
-
-	/**
-	 * 获取ArrayList的迭代器
-	 *
-	 * @MethodName iterator
-	 * @author zhaogd
-	 * @date 2017年2月21日 下午8:19:28
-	 * @return
-	 */
-	public Iterator iterator() {
-		return new ArrayListIterator();
-	}
-
-	/**
-	 * 确保数组容量足够，如果不够则扩充数组
-	 *
-	 * @MethodName ensureCapacityInternal
-	 * @author zhaogd
-	 * @date 2017年2月21日 下午5:06:46
-	 * @param minCapacity
-	 */
-	private void ensureCapacityInternal(int minCapacity) {
-		if(minCapacity > elementData.length){
-			grow(minCapacity);
-		}
-	}
-
-	/**
-	 * 数组扩充，每次扩充原数组一半的长度，然后把原数组拷贝到新数组
-	 *
-	 * @MethodName grow
-	 * @author zhaogd
-	 * @date 2017年2月21日 下午5:20:55
-	 * @param minCapacity
-	 */
-	private void grow(int minCapacity) {
-		minCapacity = elementData.length + elementData.length / 2;
-		elementData = Arrays.copyOf(elementData, minCapacity);
-	}
-	
-	/**
-	 * 检查Add方法的下标范围是否合法
-	 *
-	 * @MethodName checkRangeForAdd
-	 * @author zhaogd
-	 * @date 2017年2月21日 下午7:32:55
-	 * @param index
-	 */
-	private void checkRangeForAdd(int index) {
-		if(index > size || index < 0){
-			throw new IndexOutOfBoundsException("Index:" + index + ",Size:" + size);
-		}
-	}
-	
-	/**
-	 * 检查Get或者Remove方法的下标范围是否合法
-	 *
-	 * @MethodName checkRangeForGetOrRemove
-	 * @author zhaogd
-	 * @date 2017年2月21日 下午7:33:21
-	 * @param index
-	 */
-	private void checkRangeForGetOrRemove(int index) {
-		if(index >= size || index < 0){
-			throw new IndexOutOfBoundsException("Index:" + index + ",Size:" + size);
-		}
-	}
-	
-	
-	private class ArrayListIterator implements Iterator{
-
-		private int lastIndex = 0;
-		
-		@Override
-		public boolean hasNext() {
-			return lastIndex < size;
-		}
-
-		@Override
-		public Object next() {
-			return elementData[lastIndex++];
-		}
-	}
-}
+package com.guodong.datastructure;
+
+import java.util.Arrays;
+
+public class ArrayList implements List {
+
+	private int size = 0;
+
+	private Object[] elementData = new Object[100];
+	
+	/**
+	 * 按下标顺序新增元素
+	 *
+	 * @Method add
+	 * @param o
+	 * @see com.guodong.datastructure.List#add(java.lang.Object)
+	 */
+	public void add(Object o) {
+		ensureCapacityInternal(size + 1);
+		elementData[size] = o;
+		size++;
+	}
+
+	/**
+	 * 在指定下标位置插入元素
+	 *
+	 * @Method add
+	 * @param index
+	 * @param o
+	 * @see com.guodong.datastructure.List#add(int, java.lang.Object)
+	 */
+	public void add(int index, Object o) {
+		checkRangeForAdd(index);
+		
+		ensureCapacityInternal(size + 1);
+		
+		System.arraycopy(elementData, index, elementData, index + 1, size - index);
+		
+		elementData[index] = o;
+		size++;
+	}
+
+	/**
+	 * 根据下标获取列表数据 
+	 *
+	 * @Method get
+	 * @param index
+	 * @return
+	 * @see com.guodong.datastructure.List#get(int)
+	 */
+	public Object get(int index) {
+		checkRangeForGetOrRemove(index);
+		
+		return elementData[index];
+	}
+
+	/**
+	 * 根据下标移除元素，并返回移除的元素值
+	 *
+	 * @Method remove
+	 * @param index
+	 * @return
+	 * @see com.guodong.datastructure.List#remove(int)
+	 */
+	public Object remove(int index) {
+		checkRangeForGetOrRemove(index);
+		
+		Object oldValue = elementData[index];
+		
+		System.arraycopy(elementData, index + 1, elementData, index, size - index -1);
+		
+		size--;
+		elementData[size] = null;
+		
+		return oldValue;
+	}
+
+	/**
+	 * 获得列表长度
+	 *
+	 * @Method size
+	 * @return
+	 * @see com.guodong.datastructure.List#size()
+	 */
+	public int size() {
+		return size;
+	}
+
+	/**
+	 * 获取ArrayList的迭代器
+	 *
+	 * @MethodName iterator
+	 * @author zhaogd
+	 * @date 2017年2月21日 下午8:19:28
+	 * @return
+	 */
+	public Iterator iterator() {
+		return new ArrayListIterator();
+	}
+
+	/**
+	 * 确保数组容量足够，如果不够则扩充数组
+	 *
+	 * @MethodName ensureCapacityInternal
+	 * @author zhaogd
+	 * @date 2017年2月21日 下午5:06:46
+	 * @param minCapacity
+	 */
+	private void ensureCapacityInternal(int minCapacity) {
+		if(minCapacity > elementData.length){
+			grow(minCapacity);
+		}
+	}
+
+	/**
+	 * 数组扩充，每次扩充原数组一半的长度，然后把原数组拷贝到新数组
+	 *
+	 * @MethodName grow
+	 * @author zhaogd
+	 * @date 2017年2月21日 下午5:20:55
+	 * @param minCapacity
+	 */
+	private void grow(int minCapacity) {
+		minCapacity = elementData.length + elementData.length / 2;
+		elementData = Arrays.copyOf(elementData, minCapacity);
+	}
+	
+	/**
+	 * 检查Add方法的下标范围是否合法
+	 *
+	 * @MethodName checkRangeForAdd
+	 * @author zhaogd
+	 * @date 2017年2月21日 下午7:32:55
+	 * @param index
+	 */
+	private void checkRangeForAdd(int index) {
+		if(index > size || index < 0){
+			throw new IndexOutOfBoundsException("Index:" + index + ",Size:" + size);
+		}
+	}
+	
+	/**
+	 * 检查Get或者Remove方法的下标范围是否合法
+	 *
+	 * @MethodName checkRangeForGetOrRemove
+	 * @author zhaogd
+	 * @date 2017年2月21日 下午7:33:21
+	 * @param index
+	 */
+	private void checkRangeForGetOrRemove(int index) {
+		if(index >= size || index < 0){
+			throw new IndexOutOfBoundsException("Index:" + index + ",Size:" + size);
+		}
+	}
+	
+	
+	private class ArrayListIterator implements Iterator{
+
+		private int lastIndex = 0;
+		
+		@Override
+		public boolean hasNext() {
+			return lastIndex < size;
+		}
+
+		@Override
+		public Object next() {
+			return elementData[lastIndex++];
+		}
+	}
+}
diff --git a/group12/377401843/learning_1/src/com/guodong/datastructure/BinaryTreeNode.java b/group12/377401843/learning_1/src/com/guodong/datastructure/BinaryTreeNode.java
index 677eff3da..2ced039d2 100644
--- a/group12/377401843/learning_1/src/com/guodong/datastructure/BinaryTreeNode.java
+++ b/group12/377401843/learning_1/src/com/guodong/datastructure/BinaryTreeNode.java
@@ -1,58 +1,58 @@
-package com.guodong.datastructure;
-
-public class BinaryTreeNode {
-
-	private int data;
-	private BinaryTreeNode left;
-	private BinaryTreeNode right;
-
-	public BinaryTreeNode(int data) {
-		this.data = data;
-	}
-
-	public int getData() {
-		return data;
-	}
-
-	public void setData(int 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(int o) {
-
-		if (o < data) {
-			if (left != null) {
-				left.insert(o);
-			} else {
-				left = new BinaryTreeNode(o);
-				return left;
-			}
-		} else {
-			if (right != null) {
-				right.insert(o);
-			} else {
-				right = new BinaryTreeNode(o);
-				return right;
-			}
-		}
-
-		return null;
-	}
-
-}
+package com.guodong.datastructure;
+
+public class BinaryTreeNode {
+
+	private int data;
+	private BinaryTreeNode left;
+	private BinaryTreeNode right;
+
+	public BinaryTreeNode(int data) {
+		this.data = data;
+	}
+
+	public int getData() {
+		return data;
+	}
+
+	public void setData(int 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(int o) {
+
+		if (o < data) {
+			if (left != null) {
+				left.insert(o);
+			} else {
+				left = new BinaryTreeNode(o);
+				return left;
+			}
+		} else {
+			if (right != null) {
+				right.insert(o);
+			} else {
+				right = new BinaryTreeNode(o);
+				return right;
+			}
+		}
+
+		return null;
+	}
+
+}
diff --git a/group12/377401843/learning_1/src/com/guodong/datastructure/Iterator.java b/group12/377401843/learning_1/src/com/guodong/datastructure/Iterator.java
index 1a9bc5ad8..8d486220b 100644
--- a/group12/377401843/learning_1/src/com/guodong/datastructure/Iterator.java
+++ b/group12/377401843/learning_1/src/com/guodong/datastructure/Iterator.java
@@ -1,7 +1,7 @@
-package com.guodong.datastructure;
-
-public interface Iterator {
-	public boolean hasNext();
-	public Object next();
-
-}
+package com.guodong.datastructure;
+
+public interface Iterator {
+	public boolean hasNext();
+	public Object next();
+
+}
diff --git a/group12/377401843/learning_1/src/com/guodong/datastructure/LinkedList.java b/group12/377401843/learning_1/src/com/guodong/datastructure/LinkedList.java
index a7dc12694..976129cc8 100644
--- a/group12/377401843/learning_1/src/com/guodong/datastructure/LinkedList.java
+++ b/group12/377401843/learning_1/src/com/guodong/datastructure/LinkedList.java
@@ -1,285 +1,285 @@
-package com.guodong.datastructure;
-
-import java.util.NoSuchElementException;
-
-public class LinkedList implements List {
-
-	private int size;
-
-	private Node head;
-
-	private Node last;
-
-	/**
-	 * 向 链表尾端插入元素
-	 *
-	 * @Method add
-	 * @param o
-	 * @see com.guodong.datastructure.List#add(java.lang.Object)
-	 */
-	public void add(Object o) {
-		linkLast(o);
-	}
-
-	/**
-	 * 向链表指定位置插入元素
-	 *
-	 * @Method add
-	 * @param index
-	 * @param o
-	 * @see com.guodong.datastructure.List#add(int, java.lang.Object)
-	 */
-	public void add(int index, Object o) {
-		checkIndexForAdd(index);
-
-		if (index == size) {
-			linkLast(o);
-		} else {
-			Node prevNode = getNodeByIndex(index - 1); // 取到当前下标的前一个节点
-			Node currentNode = getNodeByIndex(index); // 取到当前下标节点
-			Node newNode = new Node(o, currentNode); // 创建新节点，新节点的下一个节点为当前下标节点
-
-			if (prevNode == null) { // 如果前一个节点为空，说明从头部插入
-				head = newNode;
-			} else {
-				prevNode.next = newNode;
-			}
-			size++;
-		}
-	}
-
-	/**
-	 * 根据下标获取链表中元素
-	 *
-	 * @Method get
-	 * @param index
-	 * @return
-	 * @see com.guodong.datastructure.List#get(int)
-	 */
-	public Object get(int index) {
-		checkIndexForGet(index);
-		return getNodeByIndex(index).data;
-	}
-
-	public Object getLast() {
-		return last.data;
-	}
-
-	/**
-	 * 根据下标移除链表元素
-	 *
-	 * @Method remove
-	 * @param index
-	 * @return
-	 * @see com.guodong.datastructure.List#remove(int)
-	 */
-	public Object remove(int index) {
-		checkIndexForGet(index);
-
-		Node prevNode = getNodeByIndex(index - 1); // 获取当前index前一个元素
-		Node currentNode = null;
-		if (prevNode == null) {
-			currentNode = getNodeByIndex(index); // 如果前一个为空，则把下一个元素赋值给链表头
-			head = currentNode.next;
-		} else {
-			currentNode = prevNode.next; // 如果不为空，则把前一个节点跟后一个节点链接
-			prevNode.next = currentNode.next;
-		}
-		Node nextNode = currentNode.next;
-
-		if (nextNode == null) { // 如果后一个节点为空，则把链尾赋值为前一个节点
-			last = prevNode;
-		} else {
-			currentNode.next = null; // 如果后一个节点不为空，不做任何处理，只打断当前节点的链接
-		}
-		Object data = currentNode.data;
-		currentNode.data = null; // 清空当前节点的值，等待垃圾回收
-
-		size--;
-
-		return data;
-	}
-
-	/**
-	 * 返回List长度
-	 */
-	public int size() {
-		return size;
-	}
-
-	/**
-	 * 向列表头部添加元素
-	 * 
-	 * @param o
-	 */
-	public void addFirst(Object o) {
-		Node n = head;
-		Node newNode = new Node(o, n);
-
-		head = newNode;
-		if (n == null) {
-			last = newNode;
-		}
-		size++;
-	}
-
-	/**
-	 * 向列表尾部添加元素
-	 * 
-	 * @param o
-	 */
-	public void addLast(Object o) {
-		linkLast(o);
-	}
-
-	/**
-	 * 移除链表第一个元素
-	 * 
-	 * @return
-	 */
-	public Object removeFirst() {
-		Node n = head;
-		if (n == null) {
-			throw new NoSuchElementException();
-		}
-		Object data = n.data;
-		Node nextNode = n.next;
-
-		n.data = null;
-		n.next = null;
-
-		head = nextNode;
-		if (nextNode == null) {
-			last = null;
-		}
-
-		size--;
-		return data;
-	}
-
-	public Object removeLast() {
-		Node n = last;
-		if (n == null) {
-			throw new NoSuchElementException();
-		}
-		Object data = n.data;
-		Node prevNode = getNodeByIndex(size - 2);
-		n.data = null;
-		if (prevNode == null) {
-			head = null;
-		} else {
-			prevNode.next = null;
-		}
-		last = prevNode;
-
-		size--;
-		return data;
-	}
-
-	/**
-	 * 根据下标获取对应的节点
-	 *
-	 * @MethodName getNodeByIndex
-	 * @author zhaogd
-	 * @date 2017年2月23日 下午3:32:48
-	 * @param index
-	 * @return
-	 */
-	private Node getNodeByIndex(int index) {
-		if (index < 0) {
-			return null;
-		}
-		Node n = head;
-		for (int i = 0; i < index; i++) {
-			n = n.next;
-		}
-		return n;
-	}
-
-	/**
-	 * 在链表尾端插入节点
-	 *
-	 * @MethodName linkLast
-	 * @author zhaogd
-	 * @date 2017年2月23日 下午3:14:28
-	 * @param o
-	 */
-	private void linkLast(Object o) {
-		Node n = last; // 取出原尾端数据
-		Node newNode = new Node(o, null); // 创建新节点
-		last = newNode; // 把新节点放入链表尾端
-		// 如果原尾端为空，说明链表为空，把新节点也放入链表头部
-		// 如果不为空，把原尾端节点指向新节点
-		if (n == null) {
-			head = newNode;
-		} else {
-			n.next = newNode;
-		}
-
-		size++;
-	}
-
-	/**
-	 * 检查下标是否合法
-	 *
-	 * @MethodName checkIndexForAdd
-	 * @author zhaogd
-	 * @date 2017年2月23日 下午3:05:07
-	 * @param index
-	 */
-	private void checkIndexForAdd(int index) {
-		if (index < 0 || index > size) {
-			throw new IndexOutOfBoundsException("Index:" + index + ",Size:" + size);
-		}
-	}
-
-	/**
-	 * 检查下标是否合法
-	 *
-	 * @MethodName checkIndexForGet
-	 * @author zhaogd
-	 * @date 2017年2月23日 下午4:21:35
-	 * @param index
-	 */
-	private void checkIndexForGet(int index) {
-		if (index < 0 || index >= size) {
-			throw new IndexOutOfBoundsException("Index:" + index + ",Size:" + size);
-		}
-	}
-
-	private static class Node {
-		Object data;
-		Node next;
-
-		Node(Object data, Node next) {
-			this.data = data;
-			this.next = next;
-		}
-	}
-
-	public Iterator iterator() {
-		return new LinkedListIterator();
-	}
-
-	private class LinkedListIterator implements Iterator {
-		private Node current;
-
-		private int index;
-
-		@Override
-		public boolean hasNext() {
-			return index < size;
-		}
-
-		@Override
-		public Object next() {
-			if (current == null) {
-				current = getNodeByIndex(index);
-			}
-			Object data = current.data;
-			current = current.next;
-			index++;
-			return data;
-		}
-	}
-}
+package com.guodong.datastructure;
+
+import java.util.NoSuchElementException;
+
+public class LinkedList implements List {
+
+	private int size;
+
+	private Node head;
+
+	private Node last;
+
+	/**
+	 * 向 链表尾端插入元素
+	 *
+	 * @Method add
+	 * @param o
+	 * @see com.guodong.datastructure.List#add(java.lang.Object)
+	 */
+	public void add(Object o) {
+		linkLast(o);
+	}
+
+	/**
+	 * 向链表指定位置插入元素
+	 *
+	 * @Method add
+	 * @param index
+	 * @param o
+	 * @see com.guodong.datastructure.List#add(int, java.lang.Object)
+	 */
+	public void add(int index, Object o) {
+		checkIndexForAdd(index);
+
+		if (index == size) {
+			linkLast(o);
+		} else {
+			Node prevNode = getNodeByIndex(index - 1); // 取到当前下标的前一个节点
+			Node currentNode = getNodeByIndex(index); // 取到当前下标节点
+			Node newNode = new Node(o, currentNode); // 创建新节点，新节点的下一个节点为当前下标节点
+
+			if (prevNode == null) { // 如果前一个节点为空，说明从头部插入
+				head = newNode;
+			} else {
+				prevNode.next = newNode;
+			}
+			size++;
+		}
+	}
+
+	/**
+	 * 根据下标获取链表中元素
+	 *
+	 * @Method get
+	 * @param index
+	 * @return
+	 * @see com.guodong.datastructure.List#get(int)
+	 */
+	public Object get(int index) {
+		checkIndexForGet(index);
+		return getNodeByIndex(index).data;
+	}
+
+	public Object getLast() {
+		return last.data;
+	}
+
+	/**
+	 * 根据下标移除链表元素
+	 *
+	 * @Method remove
+	 * @param index
+	 * @return
+	 * @see com.guodong.datastructure.List#remove(int)
+	 */
+	public Object remove(int index) {
+		checkIndexForGet(index);
+
+		Node prevNode = getNodeByIndex(index - 1); // 获取当前index前一个元素
+		Node currentNode = null;
+		if (prevNode == null) {
+			currentNode = getNodeByIndex(index); // 如果前一个为空，则把下一个元素赋值给链表头
+			head = currentNode.next;
+		} else {
+			currentNode = prevNode.next; // 如果不为空，则把前一个节点跟后一个节点链接
+			prevNode.next = currentNode.next;
+		}
+		Node nextNode = currentNode.next;
+
+		if (nextNode == null) { // 如果后一个节点为空，则把链尾赋值为前一个节点
+			last = prevNode;
+		} else {
+			currentNode.next = null; // 如果后一个节点不为空，不做任何处理，只打断当前节点的链接
+		}
+		Object data = currentNode.data;
+		currentNode.data = null; // 清空当前节点的值，等待垃圾回收
+
+		size--;
+
+		return data;
+	}
+
+	/**
+	 * 返回List长度
+	 */
+	public int size() {
+		return size;
+	}
+
+	/**
+	 * 向列表头部添加元素
+	 * 
+	 * @param o
+	 */
+	public void addFirst(Object o) {
+		Node n = head;
+		Node newNode = new Node(o, n);
+
+		head = newNode;
+		if (n == null) {
+			last = newNode;
+		}
+		size++;
+	}
+
+	/**
+	 * 向列表尾部添加元素
+	 * 
+	 * @param o
+	 */
+	public void addLast(Object o) {
+		linkLast(o);
+	}
+
+	/**
+	 * 移除链表第一个元素
+	 * 
+	 * @return
+	 */
+	public Object removeFirst() {
+		Node n = head;
+		if (n == null) {
+			throw new NoSuchElementException();
+		}
+		Object data = n.data;
+		Node nextNode = n.next;
+
+		n.data = null;
+		n.next = null;
+
+		head = nextNode;
+		if (nextNode == null) {
+			last = null;
+		}
+
+		size--;
+		return data;
+	}
+
+	public Object removeLast() {
+		Node n = last;
+		if (n == null) {
+			throw new NoSuchElementException();
+		}
+		Object data = n.data;
+		Node prevNode = getNodeByIndex(size - 2);
+		n.data = null;
+		if (prevNode == null) {
+			head = null;
+		} else {
+			prevNode.next = null;
+		}
+		last = prevNode;
+
+		size--;
+		return data;
+	}
+
+	/**
+	 * 根据下标获取对应的节点
+	 *
+	 * @MethodName getNodeByIndex
+	 * @author zhaogd
+	 * @date 2017年2月23日 下午3:32:48
+	 * @param index
+	 * @return
+	 */
+	private Node getNodeByIndex(int index) {
+		if (index < 0) {
+			return null;
+		}
+		Node n = head;
+		for (int i = 0; i < index; i++) {
+			n = n.next;
+		}
+		return n;
+	}
+
+	/**
+	 * 在链表尾端插入节点
+	 *
+	 * @MethodName linkLast
+	 * @author zhaogd
+	 * @date 2017年2月23日 下午3:14:28
+	 * @param o
+	 */
+	private void linkLast(Object o) {
+		Node n = last; // 取出原尾端数据
+		Node newNode = new Node(o, null); // 创建新节点
+		last = newNode; // 把新节点放入链表尾端
+		// 如果原尾端为空，说明链表为空，把新节点也放入链表头部
+		// 如果不为空，把原尾端节点指向新节点
+		if (n == null) {
+			head = newNode;
+		} else {
+			n.next = newNode;
+		}
+
+		size++;
+	}
+
+	/**
+	 * 检查下标是否合法
+	 *
+	 * @MethodName checkIndexForAdd
+	 * @author zhaogd
+	 * @date 2017年2月23日 下午3:05:07
+	 * @param index
+	 */
+	private void checkIndexForAdd(int index) {
+		if (index < 0 || index > size) {
+			throw new IndexOutOfBoundsException("Index:" + index + ",Size:" + size);
+		}
+	}
+
+	/**
+	 * 检查下标是否合法
+	 *
+	 * @MethodName checkIndexForGet
+	 * @author zhaogd
+	 * @date 2017年2月23日 下午4:21:35
+	 * @param index
+	 */
+	private void checkIndexForGet(int index) {
+		if (index < 0 || index >= size) {
+			throw new IndexOutOfBoundsException("Index:" + index + ",Size:" + size);
+		}
+	}
+
+	private static class Node {
+		Object data;
+		Node next;
+
+		Node(Object data, Node next) {
+			this.data = data;
+			this.next = next;
+		}
+	}
+
+	public Iterator iterator() {
+		return new LinkedListIterator();
+	}
+
+	private class LinkedListIterator implements Iterator {
+		private Node current;
+
+		private int index;
+
+		@Override
+		public boolean hasNext() {
+			return index < size;
+		}
+
+		@Override
+		public Object next() {
+			if (current == null) {
+				current = getNodeByIndex(index);
+			}
+			Object data = current.data;
+			current = current.next;
+			index++;
+			return data;
+		}
+	}
+}
diff --git a/group12/377401843/learning_1/src/com/guodong/datastructure/List.java b/group12/377401843/learning_1/src/com/guodong/datastructure/List.java
index 2471c15d2..1a6f12da5 100644
--- a/group12/377401843/learning_1/src/com/guodong/datastructure/List.java
+++ b/group12/377401843/learning_1/src/com/guodong/datastructure/List.java
@@ -1,14 +1,14 @@
-package com.guodong.datastructure;
-
-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();
-}
+package com.guodong.datastructure;
+
+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/group12/377401843/learning_1/src/com/guodong/datastructure/Queue.java b/group12/377401843/learning_1/src/com/guodong/datastructure/Queue.java
index b14751aab..6dc85d8ec 100644
--- a/group12/377401843/learning_1/src/com/guodong/datastructure/Queue.java
+++ b/group12/377401843/learning_1/src/com/guodong/datastructure/Queue.java
@@ -1,21 +1,21 @@
-package com.guodong.datastructure;
-
-public class Queue {
-	private LinkedList element = new LinkedList();
-
-	public void enQueue(Object o) {
-		element.addLast(o);
-	}
-
-	public Object deQueue() {
-		return element.removeFirst();
-	}
-
-	public boolean isEmpty() {
-		return element.size() == 0;
-	}
-
-	public int size() {
-		return element.size();
-	}
-}
+package com.guodong.datastructure;
+
+public class Queue {
+	private LinkedList element = new LinkedList();
+
+	public void enQueue(Object o) {
+		element.addLast(o);
+	}
+
+	public Object deQueue() {
+		return element.removeFirst();
+	}
+
+	public boolean isEmpty() {
+		return element.size() == 0;
+	}
+
+	public int size() {
+		return element.size();
+	}
+}
diff --git a/group12/377401843/learning_1/src/com/guodong/datastructure/Stack.java b/group12/377401843/learning_1/src/com/guodong/datastructure/Stack.java
index f743d0dd3..c2b5049e7 100644
--- a/group12/377401843/learning_1/src/com/guodong/datastructure/Stack.java
+++ b/group12/377401843/learning_1/src/com/guodong/datastructure/Stack.java
@@ -1,25 +1,25 @@
-package com.guodong.datastructure;
-
-public class Stack {
-	private LinkedList elementData = new LinkedList();
-
-	public void push(Object o) {
-		elementData.addLast(o);
-	}
-
-	public Object pop() {
-		return elementData.removeLast();
-	}
-
-	public Object peek() {
-		return elementData.getLast();
-	}
-
-	public boolean isEmpty() {
-		return elementData.size() == 0;
-	}
-
-	public int size() {
-		return elementData.size();
-	}
-}
+package com.guodong.datastructure;
+
+public class Stack {
+	private LinkedList elementData = new LinkedList();
+
+	public void push(Object o) {
+		elementData.addLast(o);
+	}
+
+	public Object pop() {
+		return elementData.removeLast();
+	}
+
+	public Object peek() {
+		return elementData.getLast();
+	}
+
+	public boolean isEmpty() {
+		return elementData.size() == 0;
+	}
+
+	public int size() {
+		return elementData.size();
+	}
+}
diff --git a/group12/377401843/learning_1/src/com/guodong/datastructure/test/ArrayListTest.java b/group12/377401843/learning_1/src/com/guodong/datastructure/test/ArrayListTest.java
index ec3a7600a..f38f58614 100644
--- a/group12/377401843/learning_1/src/com/guodong/datastructure/test/ArrayListTest.java
+++ b/group12/377401843/learning_1/src/com/guodong/datastructure/test/ArrayListTest.java
@@ -1,135 +1,135 @@
-package com.guodong.datastructure.test;
-
-import static org.junit.Assert.*;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.guodong.datastructure.ArrayList;
-import com.guodong.datastructure.Iterator;
-
-public class ArrayListTest {
-
-	ArrayList arrayList;
-
-	@Before
-	public void setUp() throws Exception {
-		arrayList = new ArrayList();
-	}
-
-	@After
-	public void tearDown() throws Exception {
-	}
-
-	@Test
-	public void testAddObject() {
-		// 测试新增
-		arrayList.add(0);
-		assertEquals(0, arrayList.get(0));
-		assertEquals(1, arrayList.size());
-
-		// 测试扩充
-		for (int i = 1; i < 101; i++) {
-			arrayList.add(i);
-		}
-		assertEquals(101, arrayList.size());
-	}
-
-	@Test(expected = IndexOutOfBoundsException.class)
-	public void testExceptionForAdd1() {
-		// 测试新增下标异常时，是否可以正确抛出异常
-		arrayList.add(-1, 2);
-	}
-
-	@Test(expected = IndexOutOfBoundsException.class)
-	public void testExceptionForAdd2() {
-		// 测试新增下标异常时，是否可以正确抛出异常
-		arrayList.add(1, 3);
-	}
-
-	@Test
-	public void testAddIntObject() {
-		// 测试下标新增
-		arrayList.add(0, 1);
-		arrayList.add(1, 2);
-		arrayList.add(2, 3);
-		arrayList.add(3, 4);
-		assertEquals(4, arrayList.size());
-
-		// 测试中间插入
-		arrayList.add(2, 5);
-		assertEquals(5, arrayList.size()); // 测试插入之后长度
-		assertEquals(5, arrayList.get(2));
-		assertEquals(4, arrayList.get(4)); // 测试插入之后原来数据是否后移
-		assertEquals(3, arrayList.get(3)); // 测试插入之后原来数据是否后移
-
-	}
-
-	@Test(expected = IndexOutOfBoundsException.class)
-	public void testExceptionForGet1() {
-		// 测试Get时，下标异常，是否可以正确抛出异常
-		arrayList.get(-1);
-	}
-
-	@Test(expected = IndexOutOfBoundsException.class)
-	public void testExceptionForGet2() {
-		// 测试Get时，下标异常，是否可以正确抛出异常
-		arrayList.get(0);
-	}
-
-	@Test
-	public void testGet() {
-		arrayList.add(1);
-		arrayList.add(2);
-		arrayList.add(3);
-		assertEquals(1, arrayList.get(0));
-		assertEquals(2, arrayList.get(1));
-		assertEquals(3, arrayList.get(2));
-	}
-
-	@Test(expected = IndexOutOfBoundsException.class)
-	public void testExceptionForRemove1() {
-		arrayList.remove(-1);
-	}
-
-	@Test(expected = IndexOutOfBoundsException.class)
-	public void testExceptionForRemove2() {
-		arrayList.remove(0);
-	}
-
-	@Test(expected = IndexOutOfBoundsException.class)
-	public void testExceptionForRemove3() {
-		arrayList.remove(1);
-	}
-
-	@Test
-	public void testRemove() {
-		arrayList.add(1);
-		arrayList.remove(0);
-		assertEquals(0, arrayList.size());
-
-		arrayList.add(1);
-		arrayList.add(2);
-		arrayList.remove(0);
-		assertEquals(1, arrayList.size());
-		assertEquals(2, arrayList.get(0));
-	}
-
-	@Test
-	public void testSize() {
-		arrayList.add(1);
-		assertEquals(1, arrayList.size());
-	}
-
-	@Test
-	public void testIterator() {
-		Iterator iterator = arrayList.iterator();
-		assertFalse(iterator.hasNext());
-		
-		arrayList.add(1);
-		assertTrue(iterator.hasNext());
-		assertEquals(1, iterator.next());
-		assertFalse(iterator.hasNext());
-	}
-}
+package com.guodong.datastructure.test;
+
+import static org.junit.Assert.*;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.guodong.datastructure.ArrayList;
+import com.guodong.datastructure.Iterator;
+
+public class ArrayListTest {
+
+	ArrayList arrayList;
+
+	@Before
+	public void setUp() throws Exception {
+		arrayList = new ArrayList();
+	}
+
+	@After
+	public void tearDown() throws Exception {
+	}
+
+	@Test
+	public void testAddObject() {
+		// 测试新增
+		arrayList.add(0);
+		assertEquals(0, arrayList.get(0));
+		assertEquals(1, arrayList.size());
+
+		// 测试扩充
+		for (int i = 1; i < 101; i++) {
+			arrayList.add(i);
+		}
+		assertEquals(101, arrayList.size());
+	}
+
+	@Test(expected = IndexOutOfBoundsException.class)
+	public void testExceptionForAdd1() {
+		// 测试新增下标异常时，是否可以正确抛出异常
+		arrayList.add(-1, 2);
+	}
+
+	@Test(expected = IndexOutOfBoundsException.class)
+	public void testExceptionForAdd2() {
+		// 测试新增下标异常时，是否可以正确抛出异常
+		arrayList.add(1, 3);
+	}
+
+	@Test
+	public void testAddIntObject() {
+		// 测试下标新增
+		arrayList.add(0, 1);
+		arrayList.add(1, 2);
+		arrayList.add(2, 3);
+		arrayList.add(3, 4);
+		assertEquals(4, arrayList.size());
+
+		// 测试中间插入
+		arrayList.add(2, 5);
+		assertEquals(5, arrayList.size()); // 测试插入之后长度
+		assertEquals(5, arrayList.get(2));
+		assertEquals(4, arrayList.get(4)); // 测试插入之后原来数据是否后移
+		assertEquals(3, arrayList.get(3)); // 测试插入之后原来数据是否后移
+
+	}
+
+	@Test(expected = IndexOutOfBoundsException.class)
+	public void testExceptionForGet1() {
+		// 测试Get时，下标异常，是否可以正确抛出异常
+		arrayList.get(-1);
+	}
+
+	@Test(expected = IndexOutOfBoundsException.class)
+	public void testExceptionForGet2() {
+		// 测试Get时，下标异常，是否可以正确抛出异常
+		arrayList.get(0);
+	}
+
+	@Test
+	public void testGet() {
+		arrayList.add(1);
+		arrayList.add(2);
+		arrayList.add(3);
+		assertEquals(1, arrayList.get(0));
+		assertEquals(2, arrayList.get(1));
+		assertEquals(3, arrayList.get(2));
+	}
+
+	@Test(expected = IndexOutOfBoundsException.class)
+	public void testExceptionForRemove1() {
+		arrayList.remove(-1);
+	}
+
+	@Test(expected = IndexOutOfBoundsException.class)
+	public void testExceptionForRemove2() {
+		arrayList.remove(0);
+	}
+
+	@Test(expected = IndexOutOfBoundsException.class)
+	public void testExceptionForRemove3() {
+		arrayList.remove(1);
+	}
+
+	@Test
+	public void testRemove() {
+		arrayList.add(1);
+		arrayList.remove(0);
+		assertEquals(0, arrayList.size());
+
+		arrayList.add(1);
+		arrayList.add(2);
+		arrayList.remove(0);
+		assertEquals(1, arrayList.size());
+		assertEquals(2, arrayList.get(0));
+	}
+
+	@Test
+	public void testSize() {
+		arrayList.add(1);
+		assertEquals(1, arrayList.size());
+	}
+
+	@Test
+	public void testIterator() {
+		Iterator iterator = arrayList.iterator();
+		assertFalse(iterator.hasNext());
+		
+		arrayList.add(1);
+		assertTrue(iterator.hasNext());
+		assertEquals(1, iterator.next());
+		assertFalse(iterator.hasNext());
+	}
+}
diff --git a/group12/377401843/learning_1/src/com/guodong/datastructure/test/BinaryTreeNodeTest.java b/group12/377401843/learning_1/src/com/guodong/datastructure/test/BinaryTreeNodeTest.java
index 83972b777..537cd5961 100644
--- a/group12/377401843/learning_1/src/com/guodong/datastructure/test/BinaryTreeNodeTest.java
+++ b/group12/377401843/learning_1/src/com/guodong/datastructure/test/BinaryTreeNodeTest.java
@@ -1,37 +1,37 @@
-package com.guodong.datastructure.test;
-
-import static org.junit.Assert.*;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.guodong.datastructure.BinaryTreeNode;
-
-public class BinaryTreeNodeTest {
-	
-	private BinaryTreeNode binaryTreeNode;
-
-	@Before
-	public void setUp() throws Exception {
-		binaryTreeNode = new BinaryTreeNode(50);
-	}
-
-	@After
-	public void tearDown() throws Exception {
-	}
-
-	@Test
-	public void testInsert() {
-		binaryTreeNode.insert(20);
-		binaryTreeNode.insert(30);
-		binaryTreeNode.insert(60);
-		binaryTreeNode.insert(80);
-		
-		assertEquals(20, binaryTreeNode.getLeft().getData());
-		assertEquals(30, binaryTreeNode.getLeft().getRight().getData());
-		assertEquals(60, binaryTreeNode.getRight().getData());
-		assertEquals(80, binaryTreeNode.getRight().getRight().getData());
-	}
-
-}
+package com.guodong.datastructure.test;
+
+import static org.junit.Assert.*;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.guodong.datastructure.BinaryTreeNode;
+
+public class BinaryTreeNodeTest {
+	
+	private BinaryTreeNode binaryTreeNode;
+
+	@Before
+	public void setUp() throws Exception {
+		binaryTreeNode = new BinaryTreeNode(50);
+	}
+
+	@After
+	public void tearDown() throws Exception {
+	}
+
+	@Test
+	public void testInsert() {
+		binaryTreeNode.insert(20);
+		binaryTreeNode.insert(30);
+		binaryTreeNode.insert(60);
+		binaryTreeNode.insert(80);
+		
+		assertEquals(20, binaryTreeNode.getLeft().getData());
+		assertEquals(30, binaryTreeNode.getLeft().getRight().getData());
+		assertEquals(60, binaryTreeNode.getRight().getData());
+		assertEquals(80, binaryTreeNode.getRight().getRight().getData());
+	}
+
+}
diff --git a/group12/377401843/learning_1/src/com/guodong/datastructure/test/LinkedListTest.java b/group12/377401843/learning_1/src/com/guodong/datastructure/test/LinkedListTest.java
index 054e8f81b..52d42b5aa 100644
--- a/group12/377401843/learning_1/src/com/guodong/datastructure/test/LinkedListTest.java
+++ b/group12/377401843/learning_1/src/com/guodong/datastructure/test/LinkedListTest.java
@@ -1,143 +1,143 @@
-package com.guodong.datastructure.test;
-
-import static org.junit.Assert.*;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.guodong.datastructure.Iterator;
-import com.guodong.datastructure.LinkedList;
-
-public class LinkedListTest {
-
-	private LinkedList linkedList;
-
-	@Before
-	public void setUp() throws Exception {
-		linkedList = new LinkedList();
-	}
-
-	@After
-	public void tearDown() throws Exception {
-	}
-
-	@Test
-	public void testAddObject() {
-		linkedList.add(1);
-		assertEquals(1, linkedList.size());
-		assertEquals(1, linkedList.get(0));
-	}
-
-	@Test(expected = IndexOutOfBoundsException.class)
-	public void testExceptionForAdd1() {
-		linkedList.add(-1, 1);
-	}
-
-	@Test(expected = IndexOutOfBoundsException.class)
-	public void testExceptionForAdd2() {
-		linkedList.add(1, 1);
-	}
-
-	@Test
-	public void testAddIntObject() {
-		linkedList.add(0, 1);
-		linkedList.add(1, 2);
-		assertEquals(1, linkedList.get(0));
-		
-		linkedList.add(1,3);
-		assertEquals(2, linkedList.get(2));
-		assertEquals(3, linkedList.get(1));
-		assertEquals(3, linkedList.size());
-	}
-
-	@Test(expected = IndexOutOfBoundsException.class)
-	public void testExceptionForGet1() {
-		linkedList.get(-1);
-	}
-	
-	@Test(expected = IndexOutOfBoundsException.class)
-	public void testExceptionForGet2() {
-		linkedList.get(0);
-	}
-	
-	@Test(expected = IndexOutOfBoundsException.class)
-	public void testExceptionForGet3() {
-		linkedList.get(1);
-	}
-	
-	@Test
-	public void testGet() {
-		linkedList.add(0, 1);
-		linkedList.add(1, 2);
-		assertEquals(2, linkedList.get(1));
-	}
-
-	@Test
-	public void testGetLast() {
-		linkedList.add(1);
-		assertEquals(1, linkedList.getLast());
-		
-		linkedList.add(2);
-		assertEquals(2, linkedList.getLast());
-	}
-
-	@Test
-	public void testRemove() {
-		linkedList.add(1);
-		assertEquals(1, linkedList.remove(0));
-		assertEquals(0, linkedList.size());
-	}
-
-	@Test
-	public void testSize() {
-		linkedList.add(1);
-		linkedList.add(1);
-		linkedList.add(1);
-		assertEquals(3, linkedList.size());
-	}
-
-	@Test
-	public void testAddFirst() {
-		linkedList.addFirst(1);
-		assertEquals(1, linkedList.get(0));
-		
-		linkedList.addFirst(2);
-		linkedList.addFirst(3);
-		assertEquals(3, linkedList.get(0));
-		assertEquals(1, linkedList.getLast());
-	}
-
-	@Test
-	public void testAddLast() {
-		linkedList.addLast(1);
-		assertEquals(1, linkedList.getLast());
-		assertEquals(1, linkedList.get(0));
-	}
-
-	@Test
-	public void testRemoveFirst() {
-		linkedList.addFirst(1);
-		assertEquals(1, linkedList.removeFirst());
-		assertEquals(0, linkedList.size());
-	}
-
-	@Test
-	public void testRemoveLast() {
-		linkedList.addLast(2);
-		assertEquals(2, linkedList.removeLast());
-		assertEquals(0, linkedList.size());
-	}
-
-	@Test
-	public void testIterator() {
-		Iterator iterator = linkedList.iterator();
-		assertFalse(iterator.hasNext());
-		
-		linkedList.add(1);
-		assertTrue(iterator.hasNext());
-		assertEquals(1, iterator.next());
-		assertFalse(iterator.hasNext());
-	}
-
-}
+package com.guodong.datastructure.test;
+
+import static org.junit.Assert.*;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.guodong.datastructure.Iterator;
+import com.guodong.datastructure.LinkedList;
+
+public class LinkedListTest {
+
+	private LinkedList linkedList;
+
+	@Before
+	public void setUp() throws Exception {
+		linkedList = new LinkedList();
+	}
+
+	@After
+	public void tearDown() throws Exception {
+	}
+
+	@Test
+	public void testAddObject() {
+		linkedList.add(1);
+		assertEquals(1, linkedList.size());
+		assertEquals(1, linkedList.get(0));
+	}
+
+	@Test(expected = IndexOutOfBoundsException.class)
+	public void testExceptionForAdd1() {
+		linkedList.add(-1, 1);
+	}
+
+	@Test(expected = IndexOutOfBoundsException.class)
+	public void testExceptionForAdd2() {
+		linkedList.add(1, 1);
+	}
+
+	@Test
+	public void testAddIntObject() {
+		linkedList.add(0, 1);
+		linkedList.add(1, 2);
+		assertEquals(1, linkedList.get(0));
+		
+		linkedList.add(1,3);
+		assertEquals(2, linkedList.get(2));
+		assertEquals(3, linkedList.get(1));
+		assertEquals(3, linkedList.size());
+	}
+
+	@Test(expected = IndexOutOfBoundsException.class)
+	public void testExceptionForGet1() {
+		linkedList.get(-1);
+	}
+	
+	@Test(expected = IndexOutOfBoundsException.class)
+	public void testExceptionForGet2() {
+		linkedList.get(0);
+	}
+	
+	@Test(expected = IndexOutOfBoundsException.class)
+	public void testExceptionForGet3() {
+		linkedList.get(1);
+	}
+	
+	@Test
+	public void testGet() {
+		linkedList.add(0, 1);
+		linkedList.add(1, 2);
+		assertEquals(2, linkedList.get(1));
+	}
+
+	@Test
+	public void testGetLast() {
+		linkedList.add(1);
+		assertEquals(1, linkedList.getLast());
+		
+		linkedList.add(2);
+		assertEquals(2, linkedList.getLast());
+	}
+
+	@Test
+	public void testRemove() {
+		linkedList.add(1);
+		assertEquals(1, linkedList.remove(0));
+		assertEquals(0, linkedList.size());
+	}
+
+	@Test
+	public void testSize() {
+		linkedList.add(1);
+		linkedList.add(1);
+		linkedList.add(1);
+		assertEquals(3, linkedList.size());
+	}
+
+	@Test
+	public void testAddFirst() {
+		linkedList.addFirst(1);
+		assertEquals(1, linkedList.get(0));
+		
+		linkedList.addFirst(2);
+		linkedList.addFirst(3);
+		assertEquals(3, linkedList.get(0));
+		assertEquals(1, linkedList.getLast());
+	}
+
+	@Test
+	public void testAddLast() {
+		linkedList.addLast(1);
+		assertEquals(1, linkedList.getLast());
+		assertEquals(1, linkedList.get(0));
+	}
+
+	@Test
+	public void testRemoveFirst() {
+		linkedList.addFirst(1);
+		assertEquals(1, linkedList.removeFirst());
+		assertEquals(0, linkedList.size());
+	}
+
+	@Test
+	public void testRemoveLast() {
+		linkedList.addLast(2);
+		assertEquals(2, linkedList.removeLast());
+		assertEquals(0, linkedList.size());
+	}
+
+	@Test
+	public void testIterator() {
+		Iterator iterator = linkedList.iterator();
+		assertFalse(iterator.hasNext());
+		
+		linkedList.add(1);
+		assertTrue(iterator.hasNext());
+		assertEquals(1, iterator.next());
+		assertFalse(iterator.hasNext());
+	}
+
+}
diff --git a/group12/377401843/learning_1/src/com/guodong/datastructure/test/QueueTest.java b/group12/377401843/learning_1/src/com/guodong/datastructure/test/QueueTest.java
index 86a4ebdd6..1773b5027 100644
--- a/group12/377401843/learning_1/src/com/guodong/datastructure/test/QueueTest.java
+++ b/group12/377401843/learning_1/src/com/guodong/datastructure/test/QueueTest.java
@@ -1,62 +1,62 @@
-package com.guodong.datastructure.test;
-
-import static org.junit.Assert.*;
-
-import java.util.NoSuchElementException;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.guodong.datastructure.Queue;
-
-public class QueueTest {
-
-	private Queue queue;
-	
-	@Before
-	public void setUp() throws Exception {
-		queue = new Queue();
-	}
-
-	@After
-	public void tearDown() throws Exception {
-	}
-
-	@Test
-	public void testEnQueue() {
-		queue.enQueue(1);
-		assertFalse(queue.isEmpty());
-	}
-	
-	@Test(expected = NoSuchElementException.class)
-	public void testDeQueueExecption() {
-		queue.deQueue();
-	}
-
-	@Test
-	public void testDeQueue() {
-		queue.enQueue(1);
-		assertEquals(1, queue.deQueue());
-		assertTrue(queue.isEmpty());
-	}
-
-	@Test
-	public void testIsEmpty() {
-		queue.enQueue(1);
-		assertFalse(queue.isEmpty());
-		
-		queue.deQueue();
-		assertTrue(queue.isEmpty());
-	}
-
-	@Test
-	public void testSize() {
-		queue.enQueue(1);
-		queue.enQueue(1);
-		queue.enQueue(1);
-		
-		assertEquals(3, queue.size());
-	}
-
-}
+package com.guodong.datastructure.test;
+
+import static org.junit.Assert.*;
+
+import java.util.NoSuchElementException;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.guodong.datastructure.Queue;
+
+public class QueueTest {
+
+	private Queue queue;
+	
+	@Before
+	public void setUp() throws Exception {
+		queue = new Queue();
+	}
+
+	@After
+	public void tearDown() throws Exception {
+	}
+
+	@Test
+	public void testEnQueue() {
+		queue.enQueue(1);
+		assertFalse(queue.isEmpty());
+	}
+	
+	@Test(expected = NoSuchElementException.class)
+	public void testDeQueueExecption() {
+		queue.deQueue();
+	}
+
+	@Test
+	public void testDeQueue() {
+		queue.enQueue(1);
+		assertEquals(1, queue.deQueue());
+		assertTrue(queue.isEmpty());
+	}
+
+	@Test
+	public void testIsEmpty() {
+		queue.enQueue(1);
+		assertFalse(queue.isEmpty());
+		
+		queue.deQueue();
+		assertTrue(queue.isEmpty());
+	}
+
+	@Test
+	public void testSize() {
+		queue.enQueue(1);
+		queue.enQueue(1);
+		queue.enQueue(1);
+		
+		assertEquals(3, queue.size());
+	}
+
+}
diff --git a/group12/377401843/learning_1/src/com/guodong/datastructure/test/StackTest.java b/group12/377401843/learning_1/src/com/guodong/datastructure/test/StackTest.java
index 36781c863..74ac8e7cc 100644
--- a/group12/377401843/learning_1/src/com/guodong/datastructure/test/StackTest.java
+++ b/group12/377401843/learning_1/src/com/guodong/datastructure/test/StackTest.java
@@ -1,46 +1,46 @@
-package com.guodong.datastructure.test;
-
-import static org.junit.Assert.*;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.guodong.datastructure.Stack;
-
-public class StackTest {
-	
-	private Stack stack;
-
-	@Before
-	public void setUp() throws Exception {
-		stack = new Stack();
-	}
-
-	@After
-	public void tearDown() throws Exception {
-	}
-
-	@Test
-	public void testPush() {
-		stack.push(11);
-		assertEquals(11, stack.pop());
-		assertTrue(stack.isEmpty());
-	}
-
-	@Test
-	public void testPop() {
-		stack.push(11);
-		assertEquals(11, stack.pop());
-		assertTrue(stack.isEmpty());
-	}
-
-	@Test
-	public void testPeek() {
-		stack.push(11);
-		assertEquals(11, stack.peek());
-		assertFalse(stack.isEmpty());
-		assertEquals(1, stack.size());
-	}
-
-}
+package com.guodong.datastructure.test;
+
+import static org.junit.Assert.*;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.guodong.datastructure.Stack;
+
+public class StackTest {
+	
+	private Stack stack;
+
+	@Before
+	public void setUp() throws Exception {
+		stack = new Stack();
+	}
+
+	@After
+	public void tearDown() throws Exception {
+	}
+
+	@Test
+	public void testPush() {
+		stack.push(11);
+		assertEquals(11, stack.pop());
+		assertTrue(stack.isEmpty());
+	}
+
+	@Test
+	public void testPop() {
+		stack.push(11);
+		assertEquals(11, stack.pop());
+		assertTrue(stack.isEmpty());
+	}
+
+	@Test
+	public void testPeek() {
+		stack.push(11);
+		assertEquals(11, stack.peek());
+		assertFalse(stack.isEmpty());
+		assertEquals(1, stack.size());
+	}
+
+}
diff --git a/group12/441908378/ArrayList.java b/group12/441908378/ArrayList.java
old mode 100755
new mode 100644
index 45e495867..74f49a39d
--- a/group12/441908378/ArrayList.java
+++ b/group12/441908378/ArrayList.java
@@ -1,50 +1,50 @@
-import java.util.Arrays;
-
-public class ArrayList  {
-
-private int size = 0;
-
-private Object[] elementData = new Object[100];
-
-public void enlargeCapacity(int minCapacity){
-	int oldCapacity=elementData.length;
-	if(oldCapacity<minCapacity){
-		oldCapacity=(oldCapacity*3)/2+1;
-	}
-}
-
-public void add(Object o){
- 	enlargeCapacity(elementData.length+1);
- 	elementData[elementData.length+1]=o;
-}
-public void add(int index, Object o){
-	enlargeCapacity(elementData.length+1);
-	Object data[]= Arrays.copyOfRange(elementData, index, elementData.length);
-	elementData[index] = o;
-	System.arraycopy(data, 0, elementData, index+1, elementData.length);
-	
-}
-
-public Object get(int index){
-	Object o;
-	o=elementData[index];
-	return o;
-}
-
-public Object remove(int index){
-	Object o;
-	o=elementData[index];
-	Object data[]= Arrays.copyOfRange(elementData, index+1, elementData.length);
-	System.arraycopy(data, 0, elementData, index, elementData.length);
-	return o;
-}
-
-public int size(){
- return size;
-}
-
-//public Iterator iterator(){
-//return null;
-//}
-
-}
+import java.util.Arrays;
+
+public class ArrayList  {
+
+private int size = 0;
+
+private Object[] elementData = new Object[100];
+
+public void enlargeCapacity(int minCapacity){
+	int oldCapacity=elementData.length;
+	if(oldCapacity<minCapacity){
+		oldCapacity=(oldCapacity*3)/2+1;
+	}
+}
+
+public void add(Object o){
+ 	enlargeCapacity(elementData.length+1);
+ 	elementData[elementData.length+1]=o;
+}
+public void add(int index, Object o){
+	enlargeCapacity(elementData.length+1);
+	Object data[]= Arrays.copyOfRange(elementData, index, elementData.length);
+	elementData[index] = o;
+	System.arraycopy(data, 0, elementData, index+1, elementData.length);
+	
+}
+
+public Object get(int index){
+	Object o;
+	o=elementData[index];
+	return o;
+}
+
+public Object remove(int index){
+	Object o;
+	o=elementData[index];
+	Object data[]= Arrays.copyOfRange(elementData, index+1, elementData.length);
+	System.arraycopy(data, 0, elementData, index, elementData.length);
+	return o;
+}
+
+public int size(){
+ return size;
+}
+
+//public Iterator iterator(){
+//return null;
+//}
+
+}
diff --git a/group12/441908378/BinaryTreeNode.java b/group12/441908378/BinaryTreeNode.java
old mode 100755
new mode 100644
index 972af1eec..802c9e8d6
--- a/group12/441908378/BinaryTreeNode.java
+++ b/group12/441908378/BinaryTreeNode.java
@@ -1,47 +1,47 @@
-
-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){
-		BinaryTreeNode node;
-		do{
-			node=compare(o);
-		}while(node==null);
-		node.data=o;
-		return  node;
-	}
-	
-	public BinaryTreeNode compare(Object o){
-		int a=(Integer)data;
-		int b=(Integer)o;
-		if(a>b){
-			return left;
-		}else{
-			return right;
-		}
-	}
-	
-
-}
+
+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){
+		BinaryTreeNode node;
+		do{
+			node=compare(o);
+		}while(node==null);
+		node.data=o;
+		return  node;
+	}
+	
+	public BinaryTreeNode compare(Object o){
+		int a=(Integer)data;
+		int b=(Integer)o;
+		if(a>b){
+			return left;
+		}else{
+			return right;
+		}
+	}
+	
+
+}
diff --git a/group12/441908378/LinkedList.java b/group12/441908378/LinkedList.java
old mode 100755
new mode 100644
index 0d0339bc0..456160f15
--- a/group12/441908378/LinkedList.java
+++ b/group12/441908378/LinkedList.java
@@ -1,121 +1,121 @@
-public class LinkedList  {
-
-private Node head;
-
-private static  class Node{
-	Object data;
-	Node next;
-}
-
-public boolean hasNext(Node a){
-	if(a.next!=null){
-		return true;
-	}
-	return false;
-}
-
-public Node getIndex(int index){
-	Node a=head.next;
-	for(int i=0;i<index;i++){
-		a=a.next;
-	}
-	return a;
-}
-
-public void add(Object o){
-	Node a;
-	if(!hasNext(head)){
-		a=head.next;
-		a.data=o;
-		}else{
-			a=head.next;
-			while(a.next!=null){
-				a=a.next;
-			}
-			a=a.next;
-			a.data=o;
-		}
-}
-
-
-public void add(int index , Object o){
-	Node a=getIndex(index);
-	Node b=null;
-	b.data=o;
-	b.next=a.next;
-	a.next=b;	
-}
-public Object get(int index){
-	Object o;
-	Node a=getIndex(index);
-	o=a.data;
-	return o;
-}
-public Object remove(int index){
-	Node a=getIndex(index-1);
-	Node b=a.next;
-	Object c=b.data;
-	a.next=b.next;
-	b.next=null;
-	return c;
-}
-
-public int size(){
-	Node a=head.next;
-	int i=0;
-	while(a.next==null){
-		a=a.next;
-		i++;
-	}
-	return i;
-}
-
-public void addFirst(Object o){
-	Node a=null;
-	a.data=o;
-	Node b=head.next;
-	a.next=b;
-	head.next=a;
-}
-public void addLast(Object o){
-	Node a;
-	if(!hasNext(head)){
-		a=head.next;
-		a.data=o;
-		}else{
-			a=head.next;
-			while(a.next!=null){
-				a=a.next;
-			}
-			a=a.next;
-			a.data=o;
-		}
-}
-public Object removeFirst(){
-	Node a=head.next;
-	Node b=a.next;
-	Object c=a.data;
-	head.next=b;
-	a.next=null;
-	return c;
-}
-public Object removeLast(){
-	Node a=head.next;
-	while(a.next.next!=null){
-		a=a.next;
-	};
-	Object b=a.next.data;
-	a.next=null;
-	return b;
-	
-}
-
-
-//public Iterator iterator(){
-//return null;
-//}
-
-
-
-
-}
+public class LinkedList  {
+
+private Node head;
+
+private static  class Node{
+	Object data;
+	Node next;
+}
+
+public boolean hasNext(Node a){
+	if(a.next!=null){
+		return true;
+	}
+	return false;
+}
+
+public Node getIndex(int index){
+	Node a=head.next;
+	for(int i=0;i<index;i++){
+		a=a.next;
+	}
+	return a;
+}
+
+public void add(Object o){
+	Node a;
+	if(!hasNext(head)){
+		a=head.next;
+		a.data=o;
+		}else{
+			a=head.next;
+			while(a.next!=null){
+				a=a.next;
+			}
+			a=a.next;
+			a.data=o;
+		}
+}
+
+
+public void add(int index , Object o){
+	Node a=getIndex(index);
+	Node b=null;
+	b.data=o;
+	b.next=a.next;
+	a.next=b;	
+}
+public Object get(int index){
+	Object o;
+	Node a=getIndex(index);
+	o=a.data;
+	return o;
+}
+public Object remove(int index){
+	Node a=getIndex(index-1);
+	Node b=a.next;
+	Object c=b.data;
+	a.next=b.next;
+	b.next=null;
+	return c;
+}
+
+public int size(){
+	Node a=head.next;
+	int i=0;
+	while(a.next==null){
+		a=a.next;
+		i++;
+	}
+	return i;
+}
+
+public void addFirst(Object o){
+	Node a=null;
+	a.data=o;
+	Node b=head.next;
+	a.next=b;
+	head.next=a;
+}
+public void addLast(Object o){
+	Node a;
+	if(!hasNext(head)){
+		a=head.next;
+		a.data=o;
+		}else{
+			a=head.next;
+			while(a.next!=null){
+				a=a.next;
+			}
+			a=a.next;
+			a.data=o;
+		}
+}
+public Object removeFirst(){
+	Node a=head.next;
+	Node b=a.next;
+	Object c=a.data;
+	head.next=b;
+	a.next=null;
+	return c;
+}
+public Object removeLast(){
+	Node a=head.next;
+	while(a.next.next!=null){
+		a=a.next;
+	};
+	Object b=a.next.data;
+	a.next=null;
+	return b;
+	
+}
+
+
+//public Iterator iterator(){
+//return null;
+//}
+
+
+
+
+}
diff --git a/group12/441908378/Queue.java b/group12/441908378/Queue.java
old mode 100755
new mode 100644
index 1485b891a..78d1dcb34
--- a/group12/441908378/Queue.java
+++ b/group12/441908378/Queue.java
@@ -1,39 +1,39 @@
-import java.util.Arrays;
-
-
-public class Queue {
-
-	
-	private int size = 0;
-
-	private Object[] elementData = new Object[100];
-	
-	public void enlargeCapacity(int minCapacity){
-		int oldCapacity=elementData.length;
-		if(oldCapacity<minCapacity){
-			oldCapacity=(oldCapacity*3)/2+1;
-		}
-	}
-	
-	public void enQueue(Object o){		
-		enlargeCapacity(elementData.length+1);
-	 	elementData[elementData.length+1]=o;
-	}
-	
-	public Object deQueue(){
-		Object a = elementData[0];
-		elementData=Arrays.copyOfRange(elementData, 1, elementData.length);
-		return null;
-	}
-	
-	public boolean isEmpty(){
-		if(elementData.length==0){
-		return true;
-		}
-		return false;
-	}
-	
-	public int size(){
-		return elementData.length;
-	}
-}
+import java.util.Arrays;
+
+
+public class Queue {
+
+	
+	private int size = 0;
+
+	private Object[] elementData = new Object[100];
+	
+	public void enlargeCapacity(int minCapacity){
+		int oldCapacity=elementData.length;
+		if(oldCapacity<minCapacity){
+			oldCapacity=(oldCapacity*3)/2+1;
+		}
+	}
+	
+	public void enQueue(Object o){		
+		enlargeCapacity(elementData.length+1);
+	 	elementData[elementData.length+1]=o;
+	}
+	
+	public Object deQueue(){
+		Object a = elementData[0];
+		elementData=Arrays.copyOfRange(elementData, 1, elementData.length);
+		return null;
+	}
+	
+	public boolean isEmpty(){
+		if(elementData.length==0){
+		return true;
+		}
+		return false;
+	}
+	
+	public int size(){
+		return elementData.length;
+	}
+}
diff --git a/group12/441908378/Stack.java b/group12/441908378/Stack.java
old mode 100755
new mode 100644
index acfec33cd..2c78a8585
--- a/group12/441908378/Stack.java
+++ b/group12/441908378/Stack.java
@@ -1,30 +1,30 @@
-
-public class Stack {
-	private ArrayList elementData = new ArrayList();
-
-	private int size = 0;
-
-	public void push(Object o){		
-	elementData.add(o);
-	}
-	
-	public Object pop(){
-		Object o=elementData.get(elementData.size());
-		elementData.remove(elementData.size());
-		return o;
-	}
-	
-	public Object peek(){
-		Object o=elementData.get(elementData.size());
-		return o;
-	}
-	public boolean isEmpty(){
-		if(elementData.size()==0){
-			return true;
-		}
-		return false;
-	}
-	public int size(){
-		return elementData.size();
-	}
-}
+
+public class Stack {
+	private ArrayList elementData = new ArrayList();
+
+	private int size = 0;
+
+	public void push(Object o){		
+	elementData.add(o);
+	}
+	
+	public Object pop(){
+		Object o=elementData.get(elementData.size());
+		elementData.remove(elementData.size());
+		return o;
+	}
+	
+	public Object peek(){
+		Object o=elementData.get(elementData.size());
+		return o;
+	}
+	public boolean isEmpty(){
+		if(elementData.size()==0){
+			return true;
+		}
+		return false;
+	}
+	public int size(){
+		return elementData.size();
+	}
+}
diff --git a/group18/1159828430/20170219/.classpath b/group18/1159828430/20170219/.classpath
index 2d7497573..3e0fb272a 100644
--- a/group18/1159828430/20170219/.classpath
+++ b/group18/1159828430/20170219/.classpath
@@ -1,7 +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>
+<?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/group18/1159828430/20170219/.project b/group18/1159828430/20170219/.project
index da66c3a49..93c92379c 100644
--- a/group18/1159828430/20170219/.project
+++ b/group18/1159828430/20170219/.project
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>20170219</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>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>20170219</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/group18/1159828430/20170219/src/com/coding/basic/ArrayList.java b/group18/1159828430/20170219/src/com/coding/basic/ArrayList.java
index c8db73011..f8298d7a4 100644
--- a/group18/1159828430/20170219/src/com/coding/basic/ArrayList.java
+++ b/group18/1159828430/20170219/src/com/coding/basic/ArrayList.java
@@ -1,145 +1,145 @@
-package com.coding.basic;
-
-import java.util.Arrays;
-
-/**
- * @author Hipple
- * @Time：2017年2月20日 下午8:53:31
- * @version 1.0
- */
-public class ArrayList implements List {
-	
-	//元素数量
-	private int size = 0;
-	
-	//默认容量
-	private final int defaultCapacity = 10;
-	
-	//存储元素的容器
-	private static Object[] elementData;
-	
-	//无参构造器
-	public ArrayList(){
-		elementData = new Object[defaultCapacity];
-	}
-	
-	//指定容量的构造器
-	public ArrayList(int capacity){
-		if (capacity < 0) {
-			//非法参数
-			throw new IllegalArgumentException("Illegal Capacity: "+ capacity);
-		}
-		elementData = new Object[capacity];
-	}
-	
-	//添加元素
-	public boolean add(Object o){
-		ensureCapacityInternal(size + 1);
-		elementData[size++] = o;
-		return true;
-	}
-	
-	//添加元素到指定位置
-	public void add(int index, Object o){
-		rangeCheck(index);
-		//将当前位置及后续元素后移一位
-		ensureCapacityInternal(size + 1);
-		System.arraycopy(elementData, index, elementData, index+1, size-index);
-		elementData[index] = o;
-		size++;
-	}
-	
-	//根据下表获取值
-	public Object get(int index){
-		rangeCheck(index); 
-		return elementData[index];
-	}
-	
-	//删除元素
-	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;//自动回收
-		return oldValue;
-	}
-	
-	//删除元素
-	public boolean remove(Object o) {
-		// 由于ArrayList中允许存放null，因此下面通过两种情况来分别处理。
-		if (o == null) {
-			for (int index = 0; index < size; index++){
-				if (elementData[index] == null) {
-					fastRemove(index);
-					return true;
-				}
-			}
-		} else {
-			for (int index = 0; index < size; index++){
-				if (o.equals(elementData[index])) {
-					fastRemove(index);
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-	
-	//返回现有元素数量
-	public int size(){
-		return size;
-	}
-	
-	//是否为空
-	public boolean isEmpty(){
-		return size == 0;
-	}
-	
-	public Iterator iterator(){
-		return null;
-	}
-	
-	//动态增加ArrayList大小
-    private void ensureCapacityInternal(int minCapacity) {
-    	//当前数组无法再存放时将数组长度增加至原长度的1.5倍
-        if (minCapacity - elementData.length > 0) {
-        	int newCapacity = (elementData.length * 3)/2;
-        	elementData = Arrays.copyOf(elementData, newCapacity);
-        }
-            
-    }
-    
-    //检查是否下标越界
-    private void rangeCheck(int index){
-    	if (index < 0 || index > this.size) {
-    		throw new IndexOutOfBoundsException("Index: "+index+", Size: "+size);
-    	}
-    }
-    
-    //删除元素，与remove的 差别就是没有下标检查
-	private void fastRemove(int index) {
-		int numMoved = size - index - 1;
-		if (numMoved > 0){
-			System.arraycopy(elementData, index + 1, elementData, index, numMoved);
-		}
-		elementData[--size] = null; 
-	}
-    
-}
-class testArrayList{
-    public static void main(String[] args) {
-        ArrayList arrayList = new ArrayList();
-        for (int i = 0; i < 10; i++) {
-            arrayList.add(i+1);
-        }
-        arrayList.add(5,15);
-        arrayList.remove(11);
-        for (int i = 0; i < arrayList.size(); i++) {
-            System.out.println("value is "+arrayList.get(i));
-        }
-    }
-}
+package com.coding.basic;
+
+import java.util.Arrays;
+
+/**
+ * @author Hipple
+ * @Time：2017年2月20日 下午8:53:31
+ * @version 1.0
+ */
+public class ArrayList implements List {
+	
+	//元素数量
+	private int size = 0;
+	
+	//默认容量
+	private final int defaultCapacity = 10;
+	
+	//存储元素的容器
+	private static Object[] elementData;
+	
+	//无参构造器
+	public ArrayList(){
+		elementData = new Object[defaultCapacity];
+	}
+	
+	//指定容量的构造器
+	public ArrayList(int capacity){
+		if (capacity < 0) {
+			//非法参数
+			throw new IllegalArgumentException("Illegal Capacity: "+ capacity);
+		}
+		elementData = new Object[capacity];
+	}
+	
+	//添加元素
+	public boolean add(Object o){
+		ensureCapacityInternal(size + 1);
+		elementData[size++] = o;
+		return true;
+	}
+	
+	//添加元素到指定位置
+	public void add(int index, Object o){
+		rangeCheck(index);
+		//将当前位置及后续元素后移一位
+		ensureCapacityInternal(size + 1);
+		System.arraycopy(elementData, index, elementData, index+1, size-index);
+		elementData[index] = o;
+		size++;
+	}
+	
+	//根据下表获取值
+	public Object get(int index){
+		rangeCheck(index); 
+		return elementData[index];
+	}
+	
+	//删除元素
+	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;//自动回收
+		return oldValue;
+	}
+	
+	//删除元素
+	public boolean remove(Object o) {
+		// 由于ArrayList中允许存放null，因此下面通过两种情况来分别处理。
+		if (o == null) {
+			for (int index = 0; index < size; index++){
+				if (elementData[index] == null) {
+					fastRemove(index);
+					return true;
+				}
+			}
+		} else {
+			for (int index = 0; index < size; index++){
+				if (o.equals(elementData[index])) {
+					fastRemove(index);
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+	
+	//返回现有元素数量
+	public int size(){
+		return size;
+	}
+	
+	//是否为空
+	public boolean isEmpty(){
+		return size == 0;
+	}
+	
+	public Iterator iterator(){
+		return null;
+	}
+	
+	//动态增加ArrayList大小
+    private void ensureCapacityInternal(int minCapacity) {
+    	//当前数组无法再存放时将数组长度增加至原长度的1.5倍
+        if (minCapacity - elementData.length > 0) {
+        	int newCapacity = (elementData.length * 3)/2;
+        	elementData = Arrays.copyOf(elementData, newCapacity);
+        }
+            
+    }
+    
+    //检查是否下标越界
+    private void rangeCheck(int index){
+    	if (index < 0 || index > this.size) {
+    		throw new IndexOutOfBoundsException("Index: "+index+", Size: "+size);
+    	}
+    }
+    
+    //删除元素，与remove的 差别就是没有下标检查
+	private void fastRemove(int index) {
+		int numMoved = size - index - 1;
+		if (numMoved > 0){
+			System.arraycopy(elementData, index + 1, elementData, index, numMoved);
+		}
+		elementData[--size] = null; 
+	}
+    
+}
+class testArrayList{
+    public static void main(String[] args) {
+        ArrayList arrayList = new ArrayList();
+        for (int i = 0; i < 10; i++) {
+            arrayList.add(i+1);
+        }
+        arrayList.add(5,15);
+        arrayList.remove(11);
+        for (int i = 0; i < arrayList.size(); i++) {
+            System.out.println("value is "+arrayList.get(i));
+        }
+    }
+}
diff --git a/group18/1159828430/20170219/src/com/coding/basic/Iterator.java b/group18/1159828430/20170219/src/com/coding/basic/Iterator.java
index 0ce3f762b..01b8f2f62 100644
--- a/group18/1159828430/20170219/src/com/coding/basic/Iterator.java
+++ b/group18/1159828430/20170219/src/com/coding/basic/Iterator.java
@@ -1,11 +1,11 @@
-package com.coding.basic;
-/**
- * @author Hipple
- * @Time：2017年2月20日 下午8:56:05
- * @version 1.0
- */
-public interface Iterator {
-	public boolean hasNext();
-	public Object next();
-
+package com.coding.basic;
+/**
+ * @author Hipple
+ * @Time：2017年2月20日 下午8:56:05
+ * @version 1.0
+ */
+public interface Iterator {
+	public boolean hasNext();
+	public Object next();
+
 }
\ No newline at end of file
diff --git a/group18/1159828430/20170219/src/com/coding/basic/List.java b/group18/1159828430/20170219/src/com/coding/basic/List.java
index 08e0f9e2d..78674d202 100644
--- a/group18/1159828430/20170219/src/com/coding/basic/List.java
+++ b/group18/1159828430/20170219/src/com/coding/basic/List.java
@@ -1,13 +1,13 @@
-package com.coding.basic;
-/**
- * @author Hipple
- * @Time：2017年2月20日 下午8:52:08
- * @version 1.0
- */
-public interface List {
-	public boolean add(Object o);
-	public void add(int index, Object o);
-	public Object get(int index);
-	public Object remove(int index);
-	public int size();
+package com.coding.basic;
+/**
+ * @author Hipple
+ * @Time：2017年2月20日 下午8:52:08
+ * @version 1.0
+ */
+public interface List {
+	public boolean add(Object o);
+	public void add(int index, Object o);
+	public Object get(int index);
+	public Object remove(int index);
+	public int size();
 }
\ No newline at end of file
diff --git a/group18/1159828430/20170219/src/com/coding/basic/Queue.java b/group18/1159828430/20170219/src/com/coding/basic/Queue.java
index e91779fdb..a5de938d6 100644
--- a/group18/1159828430/20170219/src/com/coding/basic/Queue.java
+++ b/group18/1159828430/20170219/src/com/coding/basic/Queue.java
@@ -1,31 +1,31 @@
-package com.coding.basic;
-/**
- * @author Hipple
- * @Time：2017年2月23日 下午11:00:00
- * @version 1.0
- */
-
-public class Queue {
-	private LinkedList elementData = new LinkedList();
-	
-	public Queue(){
-		
-	}
-	
-	public void enQueue(Object o){
-		elementData.addLast(o);
-	}
-	
-	public Object deQueue(){
-		elementData.getFirst();
-		return null;
-	}
-	
-	public boolean isEmpty(){
-		return elementData.isEmpty();
-	}
-	
-	public int size(){
-		return elementData.size();
-	}
-}
+package com.coding.basic;
+/**
+ * @author Hipple
+ * @Time：2017年2月23日 下午11:00:00
+ * @version 1.0
+ */
+
+public class Queue {
+	private LinkedList elementData = new LinkedList();
+	
+	public Queue(){
+		
+	}
+	
+	public void enQueue(Object o){
+		elementData.addLast(o);
+	}
+	
+	public Object deQueue(){
+		elementData.getFirst();
+		return null;
+	}
+	
+	public boolean isEmpty(){
+		return elementData.isEmpty();
+	}
+	
+	public int size(){
+		return elementData.size();
+	}
+}
diff --git a/group18/1159828430/20170219/src/com/coding/basic/Stack.java b/group18/1159828430/20170219/src/com/coding/basic/Stack.java
index ef5b63705..eae2f6637 100644
--- a/group18/1159828430/20170219/src/com/coding/basic/Stack.java
+++ b/group18/1159828430/20170219/src/com/coding/basic/Stack.java
@@ -1,57 +1,57 @@
-package com.coding.basic;
-
-import java.util.EmptyStackException;
-
-/**
- * @author Hipple
- * @Time：2017年2月23日 下午10:59:39
- * @version 1.0
- */
-public class Stack {
-	private ArrayList elementData = new ArrayList();
-	
-	public Stack(){
-		
-	}
-	
-	//入栈  
-	public void push(Object o){
-		elementData.add(o);
-	}
-	
-	//出栈
-	public Object pop(){
-		if (elementData.isEmpty()) {
-			throw new EmptyStackException();
-		}
-		final Object o = peek();
-		elementData.remove(o);//重新写根据对象remove
-		return o;
-	}
-	
-	public Object peek(){
-		if (elementData.isEmpty()) {
-			throw new EmptyStackException();
-		}
-		final Object o = elementData.get(elementData.size()-1);
-		return o;
-	}
-	public boolean isEmpty(){
-		return size() == 0;
-	}
-	public int size(){
-		return elementData.size();
-	}
-}
-class TestStack {  
-    public static void main(String[] args){  
-    	Stack myStack=new Stack();  
-        myStack.push("a");  
-        myStack.push(2);  
-        myStack.push("123");  
-        myStack.push("ahu");  
-        while(!myStack.isEmpty()){  
-            System.out.println(myStack.pop());
-        }  
-    }  
-} 
+package com.coding.basic;
+
+import java.util.EmptyStackException;
+
+/**
+ * @author Hipple
+ * @Time：2017年2月23日 下午10:59:39
+ * @version 1.0
+ */
+public class Stack {
+	private ArrayList elementData = new ArrayList();
+	
+	public Stack(){
+		
+	}
+	
+	//入栈  
+	public void push(Object o){
+		elementData.add(o);
+	}
+	
+	//出栈
+	public Object pop(){
+		if (elementData.isEmpty()) {
+			throw new EmptyStackException();
+		}
+		final Object o = peek();
+		elementData.remove(o);//重新写根据对象remove
+		return o;
+	}
+	
+	public Object peek(){
+		if (elementData.isEmpty()) {
+			throw new EmptyStackException();
+		}
+		final Object o = elementData.get(elementData.size()-1);
+		return o;
+	}
+	public boolean isEmpty(){
+		return size() == 0;
+	}
+	public int size(){
+		return elementData.size();
+	}
+}
+class TestStack {  
+    public static void main(String[] args){  
+    	Stack myStack=new Stack();  
+        myStack.push("a");  
+        myStack.push(2);  
+        myStack.push("123");  
+        myStack.push("ahu");  
+        while(!myStack.isEmpty()){  
+            System.out.println(myStack.pop());
+        }  
+    }  
+} 
diff --git a/group18/1159828430/README.md b/group18/1159828430/README.md
index 387ebebf6..8ff2ffc95 100644
--- a/group18/1159828430/README.md
+++ b/group18/1159828430/README.md
@@ -1,2 +1,2 @@
-# 2017编程提高群
-这里是1159828430 大连—书生 的代码提交区
+# 2017编程提高群
+这里是1159828430 大连—书生 的代码提交区
diff --git a/group20/331798361/assignment1/src/com/coding/basic/ArrayList.java b/group20/331798361/assignment1/src/com/coding/basic/ArrayList.java
index 0d960ee3d..590fd3209 100644
--- a/group20/331798361/assignment1/src/com/coding/basic/ArrayList.java
+++ b/group20/331798361/assignment1/src/com/coding/basic/ArrayList.java
@@ -1,122 +1,122 @@
-package com.coding.basic;
-
-import java.util.Arrays;
-
-public class ArrayList implements List {
-
-	
-	private int size = 0;
-	
-	private Object[] elementData = new Object[100];
-	
-	public void add(Object o){
-		int n = elementData.length;
-		int i = 0;
-		while (elementData[i] != null) {
-			i++;
-		}
-		if (i < n) {
-			elementData[i] = o;
-		} else {
-			Object[] temp = Arrays.copyOf(elementData, n + 1);
-			temp[n] = o;
-			elementData = temp;
-		}
-		size++;
-	}
-	public void add(int index, Object o){
-		int n = elementData.length;
-		int i = 0;
-		while (elementData[i] != null) {
-			i++;
-		}
-		if (index < 0 || index > i) {
-			System.out.println(index + " is invalid index!");
-			return;
-		}
-		if (i < n) {
-			for (int j = i; j > index; j--) {
-				elementData[j] = elementData[j - 1];
-			}
-			elementData[index] = o;
-		} else {
-			Object[] temp = Arrays.copyOf(elementData, n + 1);
-			for (int j = i; j > index; j--) {
-				temp[j] = temp[j - 1];
-			}
-			temp[index] = o;
-			elementData = temp;
-		}
-		size++;
-	}
-	
-	public Object get(int index){
-		int i = 0;
-		while (elementData[i] != null) {
-			i++;
-		}
-		if (index < 0 || index >= i) {
-			System.out.println(index + " is invalid index!");
-			return null;
-		} else {
-			return elementData[index];
-		}
-	}
-	
-	public Object remove(int index){
-		int i = 0;
-		while (elementData[i] != null) {
-			i++;
-		}
-		if (index < 0 || index >= i) {
-			System.out.println(index + " is invalid index!");
-			return null;
-		}
-		Object result = elementData[index];
-		for (int j = index; j < i; j++) {
-			elementData[j] = elementData[j + 1];
-		}
-		size--;
-		return result;
-	}
-	
-	public int size(){
-		return size;
-	}
-
-	public String toString() {
-		int i = 0;
-		while (elementData[i] != null) {
-			i++;
-		}
-		String result = "";
-		for (int j = 0; j < i - 1; j++) {
-			result += elementData[j].toString() + ", ";
-		}
-		result += elementData[size - 1].toString();
-		return result;
-	}
-	
-	public Iterator iterator(){
-		return null;
-	}
-
-	public static void main(String args[]){
-		ArrayList list1 = new ArrayList();
-		list1.add("a");
-		list1.add("b");
-		list1.add("c");
-		System.out.println(list1.toString());
-		list1.add(5, "d");
-		list1.add(1, "d");
-		System.out.println(list1.toString());
-		list1.add(4, "e");
-		System.out.println(list1.toString());
-		list1.get(5);
-		System.out.println(list1.get(0));
-		list1.remove(2);
-		System.out.println(list1.toString());
-		System.out.println(list1.size());
-	}
-	
-}
+package com.coding.basic;
+
+import java.util.Arrays;
+
+public class ArrayList implements List {
+
+	
+	private int size = 0;
+	
+	private Object[] elementData = new Object[100];
+	
+	public void add(Object o){
+		int n = elementData.length;
+		int i = 0;
+		while (elementData[i] != null) {
+			i++;
+		}
+		if (i < n) {
+			elementData[i] = o;
+		} else {
+			Object[] temp = Arrays.copyOf(elementData, n + 1);
+			temp[n] = o;
+			elementData = temp;
+		}
+		size++;
+	}
+	public void add(int index, Object o){
+		int n = elementData.length;
+		int i = 0;
+		while (elementData[i] != null) {
+			i++;
+		}
+		if (index < 0 || index > i) {
+			System.out.println(index + " is invalid index!");
+			return;
+		}
+		if (i < n) {
+			for (int j = i; j > index; j--) {
+				elementData[j] = elementData[j - 1];
+			}
+			elementData[index] = o;
+		} else {
+			Object[] temp = Arrays.copyOf(elementData, n + 1);
+			for (int j = i; j > index; j--) {
+				temp[j] = temp[j - 1];
+			}
+			temp[index] = o;
+			elementData = temp;
+		}
+		size++;
+	}
+	
+	public Object get(int index){
+		int i = 0;
+		while (elementData[i] != null) {
+			i++;
+		}
+		if (index < 0 || index >= i) {
+			System.out.println(index + " is invalid index!");
+			return null;
+		} else {
+			return elementData[index];
+		}
+	}
+	
+	public Object remove(int index){
+		int i = 0;
+		while (elementData[i] != null) {
+			i++;
+		}
+		if (index < 0 || index >= i) {
+			System.out.println(index + " is invalid index!");
+			return null;
+		}
+		Object result = elementData[index];
+		for (int j = index; j < i; j++) {
+			elementData[j] = elementData[j + 1];
+		}
+		size--;
+		return result;
+	}
+	
+	public int size(){
+		return size;
+	}
+
+	public String toString() {
+		int i = 0;
+		while (elementData[i] != null) {
+			i++;
+		}
+		String result = "";
+		for (int j = 0; j < i - 1; j++) {
+			result += elementData[j].toString() + ", ";
+		}
+		result += elementData[size - 1].toString();
+		return result;
+	}
+	
+	public Iterator iterator(){
+		return null;
+	}
+
+	public static void main(String args[]){
+		ArrayList list1 = new ArrayList();
+		list1.add("a");
+		list1.add("b");
+		list1.add("c");
+		System.out.println(list1.toString());
+		list1.add(5, "d");
+		list1.add(1, "d");
+		System.out.println(list1.toString());
+		list1.add(4, "e");
+		System.out.println(list1.toString());
+		list1.get(5);
+		System.out.println(list1.get(0));
+		list1.remove(2);
+		System.out.println(list1.toString());
+		System.out.println(list1.size());
+	}
+	
+}
diff --git a/group20/331798361/assignment1/src/com/coding/basic/BinaryTreeNode.java b/group20/331798361/assignment1/src/com/coding/basic/BinaryTreeNode.java
index 266eff3d5..d7ac82019 100644
--- a/group20/331798361/assignment1/src/com/coding/basic/BinaryTreeNode.java
+++ b/group20/331798361/assignment1/src/com/coding/basic/BinaryTreeNode.java
@@ -1,32 +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;
-	}
-	
-}
+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/group20/331798361/assignment1/src/com/coding/basic/Iterator.java b/group20/331798361/assignment1/src/com/coding/basic/Iterator.java
index dbe8b9afb..06ef6311b 100644
--- a/group20/331798361/assignment1/src/com/coding/basic/Iterator.java
+++ b/group20/331798361/assignment1/src/com/coding/basic/Iterator.java
@@ -1,7 +1,7 @@
-package com.coding.basic;
-
-public interface Iterator {
-	public boolean hasNext();
-	public Object next();
-
-}
+package com.coding.basic;
+
+public interface Iterator {
+	public boolean hasNext();
+	public Object next();
+
+}
diff --git a/group20/331798361/assignment1/src/com/coding/basic/LinkedList.java b/group20/331798361/assignment1/src/com/coding/basic/LinkedList.java
index e029beaeb..13f423cc2 100644
--- a/group20/331798361/assignment1/src/com/coding/basic/LinkedList.java
+++ b/group20/331798361/assignment1/src/com/coding/basic/LinkedList.java
@@ -1,148 +1,148 @@
-package com.coding.basic;
-
-public class LinkedList implements List {
-	
-	private Node head;
-	private int size;
-	
-	public void add(Object o){
-		if (head.data == null) {
-			head.data = o;
-			head.next = null;
-			size++;
-			return;
-		}
-		Node node = new Node(o);
-		Node curr = head;
-		while (curr.next != null) {
-			curr = curr.next;
-		}
-		curr.next = node;
-		size++;
-	}
-	public void add(int index , Object o){
-
-		if (index < 0 || index > size) {
-			System.out.println(index + " is invalid index!");
-			return;
-		}
-		if (head.data == null) {
-			if (index == 0) {
-				head.data = o;
-				head.next = null;
-				size++;
-				return;
-			} else {
-				System.out.println("invalid index!");
-				return;
-			}
-		}
-		Node node = new Node(o);
-		Node curr = head;
-		for (int i = 0; i < index - 1; i++) {
-			curr = curr.next;
-		}
-		Node temp = curr.next;
-		curr.next = node;
-		node.next = temp;
-		size++;
-	}
-	public Object get(int index){
-		if (index < 0 || index > size) {
-			System.out.println(index + " is invalid index!");
-			return null;
-		}
-		Node result = head;
-		for (int i = 0; i < index; i++) {
-			result = result.next;
-		}
-		return result;
-	}
-	public Object remove(int index){
-		if (index < 0 || index > size) {
-			System.out.println(index + " is invalid index!");
-			return null;
-		}
-		Node curr = head;
-		for (int i = 0; i < index - 1; i++) {
-			curr = curr.next;
-		}
-		Node result = curr.next;
-		curr.next = curr.next.next;
-		size--;
-		return result;
-	}
-	
-	public int size(){
-		return size;
-	}
-	
-	public void addFirst(Object o){
-		if (head.data == null) {
-			head.data = o;
-			head.next = null;
-			size++;
-			return;
-		}
-		Node temp = head;
-		head = new Node(o);
-		head.next = temp;
-		size++;
-	}
-
-	public void addLast(Object o){
-		if (head.data == null) {
-			head.data = o;
-			head.next = null;
-			size++;
-			return;
-		}
-		Node node = new Node(o);
-		Node curr = head;
-		while (curr.next != null) {
-			curr = curr.next;
-		}
-		curr.next = node;
-		size++;
-	}
-
-	public Object removeFirst(){
-		if (head.data == null) {
-			return null;
-		}
-		Node result = head;
-		head = head.next;
-		size--;
-		return result;
-	}
-
-	public Object removeLast(){
-		if (head.data == null) {
-			return null;
-		}
-		Node curr = head;
-		for (int i = 0; i < size - 1; i++) {
-			curr = curr.next;
-		}
-		Node result = curr.next;
-		curr.next = null;
-		size--;
-		return result;
-	}
-
-	public Iterator iterator(){
-		return null;
-	}
-	
-	
-	private static class Node{
-		Object data;
-		Node next;
-
-		Node(Object o) {
-			data = o;
-			next = null;
-		}
-		
-	}
-}
+package com.coding.basic;
+
+public class LinkedList implements List {
+	
+	private Node head;
+	private int size;
+	
+	public void add(Object o){
+		if (head.data == null) {
+			head.data = o;
+			head.next = null;
+			size++;
+			return;
+		}
+		Node node = new Node(o);
+		Node curr = head;
+		while (curr.next != null) {
+			curr = curr.next;
+		}
+		curr.next = node;
+		size++;
+	}
+	public void add(int index , Object o){
+
+		if (index < 0 || index > size) {
+			System.out.println(index + " is invalid index!");
+			return;
+		}
+		if (head.data == null) {
+			if (index == 0) {
+				head.data = o;
+				head.next = null;
+				size++;
+				return;
+			} else {
+				System.out.println("invalid index!");
+				return;
+			}
+		}
+		Node node = new Node(o);
+		Node curr = head;
+		for (int i = 0; i < index - 1; i++) {
+			curr = curr.next;
+		}
+		Node temp = curr.next;
+		curr.next = node;
+		node.next = temp;
+		size++;
+	}
+	public Object get(int index){
+		if (index < 0 || index > size) {
+			System.out.println(index + " is invalid index!");
+			return null;
+		}
+		Node result = head;
+		for (int i = 0; i < index; i++) {
+			result = result.next;
+		}
+		return result;
+	}
+	public Object remove(int index){
+		if (index < 0 || index > size) {
+			System.out.println(index + " is invalid index!");
+			return null;
+		}
+		Node curr = head;
+		for (int i = 0; i < index - 1; i++) {
+			curr = curr.next;
+		}
+		Node result = curr.next;
+		curr.next = curr.next.next;
+		size--;
+		return result;
+	}
+	
+	public int size(){
+		return size;
+	}
+	
+	public void addFirst(Object o){
+		if (head.data == null) {
+			head.data = o;
+			head.next = null;
+			size++;
+			return;
+		}
+		Node temp = head;
+		head = new Node(o);
+		head.next = temp;
+		size++;
+	}
+
+	public void addLast(Object o){
+		if (head.data == null) {
+			head.data = o;
+			head.next = null;
+			size++;
+			return;
+		}
+		Node node = new Node(o);
+		Node curr = head;
+		while (curr.next != null) {
+			curr = curr.next;
+		}
+		curr.next = node;
+		size++;
+	}
+
+	public Object removeFirst(){
+		if (head.data == null) {
+			return null;
+		}
+		Node result = head;
+		head = head.next;
+		size--;
+		return result;
+	}
+
+	public Object removeLast(){
+		if (head.data == null) {
+			return null;
+		}
+		Node curr = head;
+		for (int i = 0; i < size - 1; i++) {
+			curr = curr.next;
+		}
+		Node result = curr.next;
+		curr.next = null;
+		size--;
+		return result;
+	}
+
+	public Iterator iterator(){
+		return null;
+	}
+	
+	
+	private static class Node{
+		Object data;
+		Node next;
+
+		Node(Object o) {
+			data = o;
+			next = null;
+		}
+		
+	}
+}
diff --git a/group20/331798361/assignment1/src/com/coding/basic/List.java b/group20/331798361/assignment1/src/com/coding/basic/List.java
index 396b1f641..10d13b583 100644
--- a/group20/331798361/assignment1/src/com/coding/basic/List.java
+++ b/group20/331798361/assignment1/src/com/coding/basic/List.java
@@ -1,9 +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();
-}
+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/group20/331798361/assignment1/src/com/coding/basic/Queue.java b/group20/331798361/assignment1/src/com/coding/basic/Queue.java
index c4991a07f..102fc025f 100644
--- a/group20/331798361/assignment1/src/com/coding/basic/Queue.java
+++ b/group20/331798361/assignment1/src/com/coding/basic/Queue.java
@@ -1,30 +1,30 @@
-package com.coding.basic;
-
-
-public class Queue {
-	private LinkedList list = new LinkedList();
-
-	public void enQueue(Object o){
-		list.add(o);
-	}
-	
-	public Object deQueue(){
-		int length = list.size();
-		if (length == 0) {
-			return null;
-		}
-		return list.removeFirst();
-	}
-	
-	public boolean isEmpty(){
-		if (list.size() == 0) {
-			return true;
-		} else {
-			return false;
-		}
-	}
-	
-	public int size(){
-		return list.size();
-	}
-}
+package com.coding.basic;
+
+
+public class Queue {
+	private LinkedList list = new LinkedList();
+
+	public void enQueue(Object o){
+		list.add(o);
+	}
+	
+	public Object deQueue(){
+		int length = list.size();
+		if (length == 0) {
+			return null;
+		}
+		return list.removeFirst();
+	}
+	
+	public boolean isEmpty(){
+		if (list.size() == 0) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+	
+	public int size(){
+		return list.size();
+	}
+}
diff --git a/group20/331798361/assignment1/src/com/coding/basic/Stack.java b/group20/331798361/assignment1/src/com/coding/basic/Stack.java
index 0a48545ce..3a62e3817 100644
--- a/group20/331798361/assignment1/src/com/coding/basic/Stack.java
+++ b/group20/331798361/assignment1/src/com/coding/basic/Stack.java
@@ -1,37 +1,37 @@
-package com.coding.basic;
-
-public class Stack {
-	private ArrayList elementData = new ArrayList();
-	
-	public void push(Object o) {
-		elementData.add(o);
-	}
-	
-	public Object pop(){
-		int length = elementData.size();
-		if (length == 0) {
-			return null;
-		}
-		return elementData.remove(length - 1);
-	}
-	
-	public Object peek(){
-		int length = elementData.size();
-		if (length == 0) {
-			return null;
-		}
-		return elementData.get(length - 1);
-	}
-
-	public boolean isEmpty(){
-		if (elementData.size() != 0) {
-			return false;
-		} else {
-			return true;
-		}
-	}
-
-	public int size(){
-		return elementData.size();
-	}
-}
+package com.coding.basic;
+
+public class Stack {
+	private ArrayList elementData = new ArrayList();
+	
+	public void push(Object o) {
+		elementData.add(o);
+	}
+	
+	public Object pop(){
+		int length = elementData.size();
+		if (length == 0) {
+			return null;
+		}
+		return elementData.remove(length - 1);
+	}
+	
+	public Object peek(){
+		int length = elementData.size();
+		if (length == 0) {
+			return null;
+		}
+		return elementData.get(length - 1);
+	}
+
+	public boolean isEmpty(){
+		if (elementData.size() != 0) {
+			return false;
+		} else {
+			return true;
+		}
+	}
+
+	public int size(){
+		return elementData.size();
+	}
+}
diff --git a/group20/404130810/src/com/basic/datastructure/ArrayList.java b/group20/404130810/src/com/basic/datastructure/ArrayList.java
index 86c001b2c..e91eb9ce5 100644
--- a/group20/404130810/src/com/basic/datastructure/ArrayList.java
+++ b/group20/404130810/src/com/basic/datastructure/ArrayList.java
@@ -1,110 +1,110 @@
-package com.basic.datastructure;
-
-public class ArrayList implements List {
-
-	private Object[] elementData;
-	private int size;
-
-	private int enableCapacity;
-
-	public ArrayList() {
-		this.enableCapacity = 10;
-		this.elementData = new Object[enableCapacity];
-	}
-
-	@Override
-	public void add(Object o) {
-		growIfNeeded();
-		elementData[size] = o;
-		this.size++;
-	}
-
-	@Override
-	public void add(int index, Object o) {
-		rangeCheckForAdd(index);
-		growIfNeeded();
-
-		Object[] tmpObjects = new Object[elementData.length];
-		System.arraycopy(elementData, 0, tmpObjects, 0, index);
-		tmpObjects[index] = o;
-		System.arraycopy(elementData, index, tmpObjects, index + 1, elementData.length - index - 1);
-
-		elementData = tmpObjects;
-
-		this.size++;
-	}
-
-	@Override
-	public Object get(int index) {
-		if (index > size) {
-			throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
-		}
-		return elementData[index];
-	}
-
-	@Override
-	public Object remove(int index) {
-		Object removedObj = this.get(index);
-		rangeCheck(index);
-		Object[] tmpObjects = new Object[elementData.length];
-
-		System.arraycopy(elementData, 0, tmpObjects, 0, index);
-		System.arraycopy(elementData, index + 1, tmpObjects, index, elementData.length - index - 1);
-
-		elementData = tmpObjects;
-
-		return removedObj;
-	}
-
-	@Override
-	public int size() {
-		return size;
-	}
-
-	@Override
-	public String toString() {
-		for (int i = 0; i < elementData.length; i++) {
-			System.out.print(elementData[i] + ",");
-		}
-		return "";
-	}
-
-	private void rangeCheck(int paramInt) {
-		if ((paramInt < 0) || (paramInt >= size)) {
-			throw new IndexOutOfBoundsException(outOfBoundsMsg(paramInt));
-		}
-	}
-
-	private void rangeCheckForAdd(int paramInt) {
-		if ((paramInt < 0) || (paramInt > size)) {
-			throw new IndexOutOfBoundsException(outOfBoundsMsg(paramInt));
-		}
-	}
-
-	private String outOfBoundsMsg(int paramInt) {
-		return "Index: " + paramInt + ", Size: " + size;
-	}
-
-	private Object[] growIfNeeded() {
-		if (enableCapacity <= this.size) {
-			enableCapacity = enableCapacity * 2;
-			Object[] largerElementData = new Object[enableCapacity];
-			System.arraycopy(elementData, 0, largerElementData, 0, elementData.length);
-			elementData = largerElementData;
-		}
-		return elementData;
-	}
-
-	public static void main(String[] args) {
-		ArrayList list = new ArrayList();
-		for (int i = 0; i <= 11; i++) {
-			list.add(String.valueOf(i));
-		}
-		System.out.println(list.get(11));
-		//list.add(10,"test");
-		//list.get(10);
-		//list.remove(10);
-		//System.out.println(list);
-	}
-
-}
+package com.basic.datastructure;
+
+public class ArrayList implements List {
+
+	private Object[] elementData;
+	private int size;
+
+	private int enableCapacity;
+
+	public ArrayList() {
+		this.enableCapacity = 10;
+		this.elementData = new Object[enableCapacity];
+	}
+
+	@Override
+	public void add(Object o) {
+		growIfNeeded();
+		elementData[size] = o;
+		this.size++;
+	}
+
+	@Override
+	public void add(int index, Object o) {
+		rangeCheckForAdd(index);
+		growIfNeeded();
+
+		Object[] tmpObjects = new Object[elementData.length];
+		System.arraycopy(elementData, 0, tmpObjects, 0, index);
+		tmpObjects[index] = o;
+		System.arraycopy(elementData, index, tmpObjects, index + 1, elementData.length - index - 1);
+
+		elementData = tmpObjects;
+
+		this.size++;
+	}
+
+	@Override
+	public Object get(int index) {
+		if (index > size) {
+			throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
+		}
+		return elementData[index];
+	}
+
+	@Override
+	public Object remove(int index) {
+		Object removedObj = this.get(index);
+		rangeCheck(index);
+		Object[] tmpObjects = new Object[elementData.length];
+
+		System.arraycopy(elementData, 0, tmpObjects, 0, index);
+		System.arraycopy(elementData, index + 1, tmpObjects, index, elementData.length - index - 1);
+
+		elementData = tmpObjects;
+
+		return removedObj;
+	}
+
+	@Override
+	public int size() {
+		return size;
+	}
+
+	@Override
+	public String toString() {
+		for (int i = 0; i < elementData.length; i++) {
+			System.out.print(elementData[i] + ",");
+		}
+		return "";
+	}
+
+	private void rangeCheck(int paramInt) {
+		if ((paramInt < 0) || (paramInt >= size)) {
+			throw new IndexOutOfBoundsException(outOfBoundsMsg(paramInt));
+		}
+	}
+
+	private void rangeCheckForAdd(int paramInt) {
+		if ((paramInt < 0) || (paramInt > size)) {
+			throw new IndexOutOfBoundsException(outOfBoundsMsg(paramInt));
+		}
+	}
+
+	private String outOfBoundsMsg(int paramInt) {
+		return "Index: " + paramInt + ", Size: " + size;
+	}
+
+	private Object[] growIfNeeded() {
+		if (enableCapacity <= this.size) {
+			enableCapacity = enableCapacity * 2;
+			Object[] largerElementData = new Object[enableCapacity];
+			System.arraycopy(elementData, 0, largerElementData, 0, elementData.length);
+			elementData = largerElementData;
+		}
+		return elementData;
+	}
+
+	public static void main(String[] args) {
+		ArrayList list = new ArrayList();
+		for (int i = 0; i <= 11; i++) {
+			list.add(String.valueOf(i));
+		}
+		System.out.println(list.get(11));
+		//list.add(10,"test");
+		//list.get(10);
+		//list.remove(10);
+		//System.out.println(list);
+	}
+
+}
diff --git a/group20/404130810/src/com/basic/datastructure/LinkedList.java b/group20/404130810/src/com/basic/datastructure/LinkedList.java
index 43ba7ddd5..4fc92fdde 100644
--- a/group20/404130810/src/com/basic/datastructure/LinkedList.java
+++ b/group20/404130810/src/com/basic/datastructure/LinkedList.java
@@ -1,176 +1,176 @@
-package com.basic.datastructure;
-
-public class LinkedList implements List {
-	private Node first;
-	private Node last;
-
-	private int size;
-
-	public void add(Object item) {
-		addLast(item);
-	}
-
-	public void add(int index, Object item) {
-		checkRange(index);
-		if (index == 0) {
-			addFirst(item);
-		} else if (index == size) {
-			addLast(item);
-		} else {
-			Node tmpNode = new Node(item);
-			Node preNode = get(index - 1);
-			Node nextNode = get(index + 1);
-			preNode.next = tmpNode;
-			tmpNode.next = nextNode;
-			size ++;
-		}
-	}
-
-	public Node get(int index) {
-		checkRange(index);
-		if(size > 0){
-			int loopTimes = 0;
-			Node p = first;
-			while(index  > loopTimes){
-				p = p.next;
-				loopTimes ++;
-			}
-			return p;
-		}
-
-		return null;
-	}
-
-	public Object remove(int index) {
-		checkRange(index);
-		Node tmpNode = null;
-		if(index == 0){
-			removeFirst();
-		}else if(index == size -1){
-			removeLast();
-		}else{
-			tmpNode = get(index);
-			Node preNode = get(index-1);
-			Node nextNode = get(index + 1);
-			preNode.next = nextNode;
-			size --;
-		}
-		
-		return tmpNode;
-	}
-
-	public int size() {
-		return size;
-	}
-
-	public void addFirst(Object item) {
-		if (size == 0) {
-			first = new Node(item);
-			last = first;
-		} else {
-			Node tmpNode = new Node(item);
-			tmpNode.next = first;
-			first = tmpNode;
-		}
-		size++;
-	}
-
-	public void addLast(Object item) {
-		if (size == 0) {
-			first = new Node(item);
-			last = first;
-		} else {
-			last.next = new Node(item);
-			last = last.next;
-		}
-		size++;
-	}
-
-	public Object removeFirst() {
-		Node tmpNode = first;
-		if(tmpNode == null){
-			last = null;
-		}else if(size == 2){
-			first = last;
-			last = null;
-			size --;
-		}else{
-			first = first.next;
-			size--;
-		}
-		return tmpNode;
-	}
-
-	public Object removeLast() {
-		Node tmpNode = null;
-		if(size == 1){
-			this.removeFirst();
-		}else if(size >0){
-			int index = size - 1;
-			tmpNode = last;
-			get(index - 1).next = null;
-			last = get(index - 1);
-			size --;
-		}
-		return tmpNode;
-	}
-
-	private void checkRange(int index) {
-		if (index > size || index < 0) {
-			throw new IndexOutOfBoundsException("Index: " + index + "Size: " + size);
-		}
-	}
-
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-		Node p = first;
-		while (p != null) {
-			sb.append(p.item + "\n");
-			p = p.next;
-		}
-		return sb.toString();
-	}
-
-	private static class Node {
-		private Object item;
-		private Node next;
-		Node(Object item) {
-			this.item = item;
-		}
-	}
-
-	public static void main(String[] args) {
-		
-		/*Test add
-		LinkedList list = new LinkedList();
-		for (int i = 0; i <= 5; i++) {
-			list.add(i);
-		} 
-		list.add(3, "test");
-		System.out.println(list);
-		*/
-		
-		/*Test remove
-		list.remove(3);
-		System.out.println(list);
-		*/
-		
-		/*Test removeLast and removeFirst
-		System.out.println(list);
-		list.removeLast();
-		System.out.println(list);
-		list.removeLast();
-		System.out.println(list);
-		list.removeLast();
-		System.out.println(list);
-		*/
-		
-		/*Test from Java API
-		java.util.LinkedList<String> linkedList = new java.util.LinkedList<String>();
-		linkedList.add("test");
-		linkedList.removeFirst();
-		System.out.println(linkedList);
-		*/
-		
-	}
-}
+package com.basic.datastructure;
+
+public class LinkedList implements List {
+	private Node first;
+	private Node last;
+
+	private int size;
+
+	public void add(Object item) {
+		addLast(item);
+	}
+
+	public void add(int index, Object item) {
+		checkRange(index);
+		if (index == 0) {
+			addFirst(item);
+		} else if (index == size) {
+			addLast(item);
+		} else {
+			Node tmpNode = new Node(item);
+			Node preNode = get(index - 1);
+			Node nextNode = get(index + 1);
+			preNode.next = tmpNode;
+			tmpNode.next = nextNode;
+			size ++;
+		}
+	}
+
+	public Node get(int index) {
+		checkRange(index);
+		if(size > 0){
+			int loopTimes = 0;
+			Node p = first;
+			while(index  > loopTimes){
+				p = p.next;
+				loopTimes ++;
+			}
+			return p;
+		}
+
+		return null;
+	}
+
+	public Object remove(int index) {
+		checkRange(index);
+		Node tmpNode = null;
+		if(index == 0){
+			removeFirst();
+		}else if(index == size -1){
+			removeLast();
+		}else{
+			tmpNode = get(index);
+			Node preNode = get(index-1);
+			Node nextNode = get(index + 1);
+			preNode.next = nextNode;
+			size --;
+		}
+		
+		return tmpNode;
+	}
+
+	public int size() {
+		return size;
+	}
+
+	public void addFirst(Object item) {
+		if (size == 0) {
+			first = new Node(item);
+			last = first;
+		} else {
+			Node tmpNode = new Node(item);
+			tmpNode.next = first;
+			first = tmpNode;
+		}
+		size++;
+	}
+
+	public void addLast(Object item) {
+		if (size == 0) {
+			first = new Node(item);
+			last = first;
+		} else {
+			last.next = new Node(item);
+			last = last.next;
+		}
+		size++;
+	}
+
+	public Object removeFirst() {
+		Node tmpNode = first;
+		if(tmpNode == null){
+			last = null;
+		}else if(size == 2){
+			first = last;
+			last = null;
+			size --;
+		}else{
+			first = first.next;
+			size--;
+		}
+		return tmpNode;
+	}
+
+	public Object removeLast() {
+		Node tmpNode = null;
+		if(size == 1){
+			this.removeFirst();
+		}else if(size >0){
+			int index = size - 1;
+			tmpNode = last;
+			get(index - 1).next = null;
+			last = get(index - 1);
+			size --;
+		}
+		return tmpNode;
+	}
+
+	private void checkRange(int index) {
+		if (index > size || index < 0) {
+			throw new IndexOutOfBoundsException("Index: " + index + "Size: " + size);
+		}
+	}
+
+	public String toString() {
+		StringBuilder sb = new StringBuilder();
+		Node p = first;
+		while (p != null) {
+			sb.append(p.item + "\n");
+			p = p.next;
+		}
+		return sb.toString();
+	}
+
+	private static class Node {
+		private Object item;
+		private Node next;
+		Node(Object item) {
+			this.item = item;
+		}
+	}
+
+	public static void main(String[] args) {
+		
+		/*Test add
+		LinkedList list = new LinkedList();
+		for (int i = 0; i <= 5; i++) {
+			list.add(i);
+		} 
+		list.add(3, "test");
+		System.out.println(list);
+		*/
+		
+		/*Test remove
+		list.remove(3);
+		System.out.println(list);
+		*/
+		
+		/*Test removeLast and removeFirst
+		System.out.println(list);
+		list.removeLast();
+		System.out.println(list);
+		list.removeLast();
+		System.out.println(list);
+		list.removeLast();
+		System.out.println(list);
+		*/
+		
+		/*Test from Java API
+		java.util.LinkedList<String> linkedList = new java.util.LinkedList<String>();
+		linkedList.add("test");
+		linkedList.removeFirst();
+		System.out.println(linkedList);
+		*/
+		
+	}
+}
diff --git a/group20/404130810/src/com/basic/datastructure/List.java b/group20/404130810/src/com/basic/datastructure/List.java
index 13fc25acf..dcc0c18e1 100644
--- a/group20/404130810/src/com/basic/datastructure/List.java
+++ b/group20/404130810/src/com/basic/datastructure/List.java
@@ -1,10 +1,10 @@
-package com.basic.datastructure;
-
-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();
-
-}
+package com.basic.datastructure;
+
+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/group20/404130810/src/com/basic/datastructure/Queue.java b/group20/404130810/src/com/basic/datastructure/Queue.java
index f83d937e5..8e2cb7f4d 100644
--- a/group20/404130810/src/com/basic/datastructure/Queue.java
+++ b/group20/404130810/src/com/basic/datastructure/Queue.java
@@ -1,33 +1,33 @@
-package com.basic.datastructure;
-
-public class Queue {
-	LinkedList list = new LinkedList();
-	private int size;
-	
-	public void enQueue(Object o){
-		list.add(o);
-		size ++;
-	}
-	
-	public Object deQueue(){
-		size --;
-		return list.removeLast();
-	}
-	
-	public boolean isEmpty(){
-		return list.size() == 0;
-	}
-	
-	public int size(){
-		return size;
-	}
-	
-	public static void main(String[] args) {
-		Queue queue = new Queue();
-		for (int i = 0; i < 10; i++) {
-			queue.enQueue(i);
-		}
-		queue.deQueue();
-		System.out.println("Finished");
-	}
-}
+package com.basic.datastructure;
+
+public class Queue {
+	LinkedList list = new LinkedList();
+	private int size;
+	
+	public void enQueue(Object o){
+		list.add(o);
+		size ++;
+	}
+	
+	public Object deQueue(){
+		size --;
+		return list.removeLast();
+	}
+	
+	public boolean isEmpty(){
+		return list.size() == 0;
+	}
+	
+	public int size(){
+		return size;
+	}
+	
+	public static void main(String[] args) {
+		Queue queue = new Queue();
+		for (int i = 0; i < 10; i++) {
+			queue.enQueue(i);
+		}
+		queue.deQueue();
+		System.out.println("Finished");
+	}
+}
diff --git a/group20/404130810/src/com/basic/datastructure/Stack.java b/group20/404130810/src/com/basic/datastructure/Stack.java
index 7a58fd49e..bfff4d063 100644
--- a/group20/404130810/src/com/basic/datastructure/Stack.java
+++ b/group20/404130810/src/com/basic/datastructure/Stack.java
@@ -1,41 +1,41 @@
-package com.basic.datastructure;
-
-public class Stack {
-	private ArrayList elementData = new ArrayList();
-	private int size;
-	
-	public void push(Object o){		
-		elementData.add(o);
-		size++;
-	}
-	public Object pop(){
-		size --;
-		return elementData.remove(elementData.size() - 1);
-	}
-	
-	/**
-	 * Looks at the object at the top of this stack without removing it from the stack.
-	 * @return Object
-	 */
-	public Object peek(){
-		return elementData.get(elementData.size() - 1);
-	}
-	public boolean isEmpty(){
-		return size == 0;
-	}
-	public int size(){
-		return size;
-	}
-	
-	public static void main(String[] args) {
-		Stack stack = new Stack();
-		for (int i = 0; i < 10; i++) {
-			stack.push(i);
-		}
-		System.out.println(stack.peek());
-		
-		stack.pop();
-		System.out.println("Finished");
-	}
-
-}
+package com.basic.datastructure;
+
+public class Stack {
+	private ArrayList elementData = new ArrayList();
+	private int size;
+	
+	public void push(Object o){		
+		elementData.add(o);
+		size++;
+	}
+	public Object pop(){
+		size --;
+		return elementData.remove(elementData.size() - 1);
+	}
+	
+	/**
+	 * Looks at the object at the top of this stack without removing it from the stack.
+	 * @return Object
+	 */
+	public Object peek(){
+		return elementData.get(elementData.size() - 1);
+	}
+	public boolean isEmpty(){
+		return size == 0;
+	}
+	public int size(){
+		return size;
+	}
+	
+	public static void main(String[] args) {
+		Stack stack = new Stack();
+		for (int i = 0; i < 10; i++) {
+			stack.push(i);
+		}
+		System.out.println(stack.peek());
+		
+		stack.pop();
+		System.out.println("Finished");
+	}
+
+}
diff --git a/group20/404130810/src/com/basic/practice/PolymorphicInJava.java b/group20/404130810/src/com/basic/practice/PolymorphicInJava.java
index 6bf9996da..c8da98e61 100644
--- a/group20/404130810/src/com/basic/practice/PolymorphicInJava.java
+++ b/group20/404130810/src/com/basic/practice/PolymorphicInJava.java
@@ -1,41 +1,41 @@
-package com.basic.practice;
-
-/**
- * 
- * @author Wu Alvin
- * Java Polymorphic Only represent in method level
- *
- */
-
-class Fruit{
-	String name = "Fruit";
-	public void print(int i){
-		System.out.println("Fruit" + i);
-	}
-}
-
-
-class Apple extends Fruit{
-	String name = "Apple";
-	public void print(int i){
-		System.out.println("Apple" + i);
-	}
-}
-
-
-public class PolymorphicInJava {
-	
-	public static void main(String[] args) {
-		Apple apple = new Apple();
-		apple.print(100);
-		//Apple100
-		System.out.println(apple.name);
-		//Apple
-		Fruit fruit = apple;
-		fruit.print(100);
-		//Apple100
-		System.out.println(fruit.name);
-		//Fruit
-	}
-
-}
+package com.basic.practice;
+
+/**
+ * 
+ * @author Wu Alvin
+ * Java Polymorphic Only represent in method level
+ *
+ */
+
+class Fruit{
+	String name = "Fruit";
+	public void print(int i){
+		System.out.println("Fruit" + i);
+	}
+}
+
+
+class Apple extends Fruit{
+	String name = "Apple";
+	public void print(int i){
+		System.out.println("Apple" + i);
+	}
+}
+
+
+public class PolymorphicInJava {
+	
+	public static void main(String[] args) {
+		Apple apple = new Apple();
+		apple.print(100);
+		//Apple100
+		System.out.println(apple.name);
+		//Apple
+		Fruit fruit = apple;
+		fruit.print(100);
+		//Apple100
+		System.out.println(fruit.name);
+		//Fruit
+	}
+
+}
diff --git a/group20/404130810/src/com/basic/practice/ValuePassInJava.java b/group20/404130810/src/com/basic/practice/ValuePassInJava.java
index 6187b5e0f..c162ba4fc 100644
--- a/group20/404130810/src/com/basic/practice/ValuePassInJava.java
+++ b/group20/404130810/src/com/basic/practice/ValuePassInJava.java
@@ -1,44 +1,44 @@
-package com.basic.practice;
-
-public class ValuePassInJava {
-
-	/*
-	 * Pass the Simple value, etc int String...
-	 * Change will NOT happened
-	 * 
-	*/ 
-	public static void main(String[] args) {
-		String s = new String("123");
-		int i = 1;
-		changeVal(i);
-		System.out.println(i);
-		
-	}
-	
-	private static void changeVal(int i){
-		i = 2;
-	}
-	
-	/*
-	 * Pass whole OBJECT, but change the Member variable
-	 * Change will happened
-	 */
-	
-	/*
-	public static void main(String[] args) {
-		Person p = new Person();
-		p.age = 10;
-		changeAge(p);
-		System.out.println(p.age);
-	}
-	
-	private static void changeAge(Person p){
-		p.age = 20;
-	}
-	*/
-	
-}
-
-class Person{
-	int age;
-}
+package com.basic.practice;
+
+public class ValuePassInJava {
+
+	/*
+	 * Pass the Simple value, etc int String...
+	 * Change will NOT happened
+	 * 
+	*/ 
+	public static void main(String[] args) {
+		String s = new String("123");
+		int i = 1;
+		changeVal(i);
+		System.out.println(i);
+		
+	}
+	
+	private static void changeVal(int i){
+		i = 2;
+	}
+	
+	/*
+	 * Pass whole OBJECT, but change the Member variable
+	 * Change will happened
+	 */
+	
+	/*
+	public static void main(String[] args) {
+		Person p = new Person();
+		p.age = 10;
+		changeAge(p);
+		System.out.println(p.age);
+	}
+	
+	private static void changeAge(Person p){
+		p.age = 20;
+	}
+	*/
+	
+}
+
+class Person{
+	int age;
+}
diff --git a/liuxin/src/com/coderising/array/ArrayUtil.java b/liuxin/src/com/coderising/array/ArrayUtil.java
index 78845d06d..e5ddb476a 100644
--- a/liuxin/src/com/coderising/array/ArrayUtil.java
+++ b/liuxin/src/com/coderising/array/ArrayUtil.java
@@ -1,96 +1,96 @@
-package com.coderising.array;
-
-public class ArrayUtil {
-	
-	/**
-	 * 给定一个整形数组a , 对该数组的值进行置换
-		例如： a = [7, 9 , 30, 3]  ,   置换后为 [3, 30, 9,7]
-		如果     a = [7, 9, 30, 3, 4] , 置换后为 [4,3, 30 , 9,7]
-	 * @param origin
-	 * @return
-	 */
-	public void reverseArray(int[] origin){
-		
-	}
-	
-	/**
-	 * 现在有如下的一个数组：   int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}   
-	 * 要求将以上数组中值为0的项去掉，将不为0的值存入一个新的数组，生成的新数组为：   
-	 * {1,3,4,5,6,6,5,4,7,6,7,5}  
-	 * @param oldArray
-	 * @return
-	 */
-	
-	public int[] removeZero(int[] oldArray){
-		return null;
-	}
-	
-	/**
-	 * 给定两个已经排序好的整形数组， a1和a2 ,  创建一个新的数组a3, 使得a3 包含a1和a2 的所有元素， 并且仍然是有序的
-	 * 例如 a1 = [3, 5, 7,8]   a2 = [4, 5, 6,7]    则 a3 为[3,4,5,6,7,8]    , 注意： 已经消除了重复
-	 * @param array1
-	 * @param array2
-	 * @return
-	 */
-	
-	public int[] merge(int[] array1, int[] array2){
-		return  null;
-	}
-	/**
-	 * 把一个已经存满数据的数组 oldArray的容量进行扩展， 扩展后的新数据大小为oldArray.length + size
-	 * 注意，老数组的元素在新数组中需要保持
-	 * 例如 oldArray = [2,3,6] , size = 3,则返回的新数组为
-	 * [2,3,6,0,0,0]
-	 * @param oldArray
-	 * @param size
-	 * @return
-	 */
-	public int[] grow(int [] oldArray,  int size){
-		return null;
-	}
-	
-	/**
-	 * 斐波那契数列为：1，1，2，3，5，8，13，21......  ，给定一个最大值， 返回小于该值的数列
-	 * 例如， max = 15 , 则返回的数组应该为 [1，1，2，3，5，8，13]
-	 * max = 1, 则返回空数组 []
-	 * @param max
-	 * @return
-	 */
-	public int[] fibonacci(int max){
-		return null;
-	}
-	
-	/**
-	 * 返回小于给定最大值max的所有素数数组
-	 * 例如max = 23, 返回的数组为[2,3,5,7,11,13,17,19]
-	 * @param max
-	 * @return
-	 */
-	public int[] getPrimes(int max){
-		return null;
-	}
-	
-	/**
-	 * 所谓“完数”， 是指这个数恰好等于它的因子之和，例如6=1+2+3
-	 * 给定一个最大值max， 返回一个数组， 数组中是小于max 的所有完数
-	 * @param max
-	 * @return
-	 */
-	public int[] getPerfectNumbers(int max){
-		return null;
-	}
-	
-	/**
-	 * 用seperator 把数组 array给连接起来
-	 * 例如array= [3,8,9], seperator = "-"
-	 * 则返回值为"3-8-9"
-	 * @param array
-	 * @param s
-	 * @return
-	 */
-	public String join(int[] array, String seperator){
-		return null;
-	}
-	
-
-}
+package com.coderising.array;
+
+public class ArrayUtil {
+	
+	/**
+	 * 给定一个整形数组a , 对该数组的值进行置换
+		例如： a = [7, 9 , 30, 3]  ,   置换后为 [3, 30, 9,7]
+		如果     a = [7, 9, 30, 3, 4] , 置换后为 [4,3, 30 , 9,7]
+	 * @param origin
+	 * @return
+	 */
+	public void reverseArray(int[] origin){
+		
+	}
+	
+	/**
+	 * 现在有如下的一个数组：   int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}   
+	 * 要求将以上数组中值为0的项去掉，将不为0的值存入一个新的数组，生成的新数组为：   
+	 * {1,3,4,5,6,6,5,4,7,6,7,5}  
+	 * @param oldArray
+	 * @return
+	 */
+	
+	public int[] removeZero(int[] oldArray){
+		return null;
+	}
+	
+	/**
+	 * 给定两个已经排序好的整形数组， a1和a2 ,  创建一个新的数组a3, 使得a3 包含a1和a2 的所有元素， 并且仍然是有序的
+	 * 例如 a1 = [3, 5, 7,8]   a2 = [4, 5, 6,7]    则 a3 为[3,4,5,6,7,8]    , 注意： 已经消除了重复
+	 * @param array1
+	 * @param array2
+	 * @return
+	 */
+	
+	public int[] merge(int[] array1, int[] array2){
+		return  null;
+	}
+	/**
+	 * 把一个已经存满数据的数组 oldArray的容量进行扩展， 扩展后的新数据大小为oldArray.length + size
+	 * 注意，老数组的元素在新数组中需要保持
+	 * 例如 oldArray = [2,3,6] , size = 3,则返回的新数组为
+	 * [2,3,6,0,0,0]
+	 * @param oldArray
+	 * @param size
+	 * @return
+	 */
+	public int[] grow(int [] oldArray,  int size){
+		return null;
+	}
+	
+	/**
+	 * 斐波那契数列为：1，1，2，3，5，8，13，21......  ，给定一个最大值， 返回小于该值的数列
+	 * 例如， max = 15 , 则返回的数组应该为 [1，1，2，3，5，8，13]
+	 * max = 1, 则返回空数组 []
+	 * @param max
+	 * @return
+	 */
+	public int[] fibonacci(int max){
+		return null;
+	}
+	
+	/**
+	 * 返回小于给定最大值max的所有素数数组
+	 * 例如max = 23, 返回的数组为[2,3,5,7,11,13,17,19]
+	 * @param max
+	 * @return
+	 */
+	public int[] getPrimes(int max){
+		return null;
+	}
+	
+	/**
+	 * 所谓“完数”， 是指这个数恰好等于它的因子之和，例如6=1+2+3
+	 * 给定一个最大值max， 返回一个数组， 数组中是小于max 的所有完数
+	 * @param max
+	 * @return
+	 */
+	public int[] getPerfectNumbers(int max){
+		return null;
+	}
+	
+	/**
+	 * 用seperator 把数组 array给连接起来
+	 * 例如array= [3,8,9], seperator = "-"
+	 * 则返回值为"3-8-9"
+	 * @param array
+	 * @param s
+	 * @return
+	 */
+	public String join(int[] array, String seperator){
+		return null;
+	}
+	
+
+}
diff --git a/liuxin/src/com/coderising/litestruts/LoginAction.java b/liuxin/src/com/coderising/litestruts/LoginAction.java
index 1005f35a2..dcdbe226e 100644
--- a/liuxin/src/com/coderising/litestruts/LoginAction.java
+++ b/liuxin/src/com/coderising/litestruts/LoginAction.java
@@ -1,39 +1,39 @@
-package com.coderising.litestruts;
-
-/**
- * 这是一个用来展示登录的业务类， 其中的用户名和密码都是硬编码的。
- * @author liuxin
- *
- */
-public class LoginAction{
-    private String name ;
-    private String password;
-    private String message;
-
-    public String getName() {
-        return name;
-    }
-
-    public String getPassword() {
-        return password;
-    }
-
-    public String execute(){
-            if("test".equals(name) && "1234".equals(password)){
-                this.message = "login successful";
-                return "success";
-            }
-            this.message = "login failed,please check your user/pwd";
-            return "fail";
-    }
-
-    public void setName(String name){
-        this.name = name;
-    }
-    public void setPassword(String password){
-        this.password = password;
-    }
-    public String getMessage(){
-        return this.message;
-    }
-}
+package com.coderising.litestruts;
+
+/**
+ * 这是一个用来展示登录的业务类， 其中的用户名和密码都是硬编码的。
+ * @author liuxin
+ *
+ */
+public class LoginAction{
+    private String name ;
+    private String password;
+    private String message;
+
+    public String getName() {
+        return name;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public String execute(){
+            if("test".equals(name) && "1234".equals(password)){
+                this.message = "login successful";
+                return "success";
+            }
+            this.message = "login failed,please check your user/pwd";
+            return "fail";
+    }
+
+    public void setName(String name){
+        this.name = name;
+    }
+    public void setPassword(String password){
+        this.password = password;
+    }
+    public String getMessage(){
+        return this.message;
+    }
+}
diff --git a/liuxin/src/com/coderising/litestruts/Struts.java b/liuxin/src/com/coderising/litestruts/Struts.java
index 44cc35bf0..85e2e22de 100644
--- a/liuxin/src/com/coderising/litestruts/Struts.java
+++ b/liuxin/src/com/coderising/litestruts/Struts.java
@@ -1,34 +1,34 @@
-package com.coderising.litestruts;
-
-import java.util.Map;
-
-
-
-public class Struts {
-
-    public static View runAction(String actionName, Map<String,String> parameters) {
-
-        /*
-         
-		0. 读取配置文件struts.xml
- 		
- 		1. 根据actionName找到相对应的class ， 例如LoginAction,   通过反射实例化（创建对象）
-		据parameters中的数据，调用对象的setter方法， 例如parameters中的数据是 
-		("name"="test" ,  "password"="1234") ,     	
-		那就应该调用 setName和setPassword方法
-		
-		2. 通过反射调用对象的exectue 方法， 并获得返回值，例如"success"
-		
-		3. 通过反射找到对象的所有getter方法（例如 getMessage）,  
-		通过反射来调用， 把值和属性形成一个HashMap , 例如 {"message":  "登录成功"} ,  
-		放到View对象的parameters
-		
-		4. 根据struts.xml中的 <result> 配置,以及execute的返回值，  确定哪一个jsp，  
-		放到View对象的jsp字段中。
-        
-        */
-    	
-    	return null;
-    }    
-
-}
+package com.coderising.litestruts;
+
+import java.util.Map;
+
+
+
+public class Struts {
+
+    public static View runAction(String actionName, Map<String,String> parameters) {
+
+        /*
+         
+		0. 读取配置文件struts.xml
+ 		
+ 		1. 根据actionName找到相对应的class ， 例如LoginAction,   通过反射实例化（创建对象）
+		据parameters中的数据，调用对象的setter方法， 例如parameters中的数据是 
+		("name"="test" ,  "password"="1234") ,     	
+		那就应该调用 setName和setPassword方法
+		
+		2. 通过反射调用对象的exectue 方法， 并获得返回值，例如"success"
+		
+		3. 通过反射找到对象的所有getter方法（例如 getMessage）,  
+		通过反射来调用， 把值和属性形成一个HashMap , 例如 {"message":  "登录成功"} ,  
+		放到View对象的parameters
+		
+		4. 根据struts.xml中的 <result> 配置,以及execute的返回值，  确定哪一个jsp，  
+		放到View对象的jsp字段中。
+        
+        */
+    	
+    	return null;
+    }    
+
+}
diff --git a/liuxin/src/com/coderising/litestruts/StrutsTest.java b/liuxin/src/com/coderising/litestruts/StrutsTest.java
index a44c1878a..b8c81faf3 100644
--- a/liuxin/src/com/coderising/litestruts/StrutsTest.java
+++ b/liuxin/src/com/coderising/litestruts/StrutsTest.java
@@ -1,43 +1,43 @@
-package com.coderising.litestruts;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-
-
-
-
-public class StrutsTest {
-
-	@Test
-	public void testLoginActionSuccess() {
-		
-		String actionName = "login";
-        
-		Map<String,String> params = new HashMap<String,String>();
-        params.put("name","test");
-        params.put("password","1234");
-        
-        
-        View view  = Struts.runAction(actionName,params);        
-        
-        Assert.assertEquals("/jsp/homepage.jsp", view.getJsp());
-        Assert.assertEquals("login successful", view.getParameters().get("message"));
-	}
-
-	@Test
-	public void testLoginActionFailed() {
-		String actionName = "login";
-		Map<String,String> params = new HashMap<String,String>();
-        params.put("name","test");
-        params.put("password","123456"); //密码和预设的不一致
-        
-        View view  = Struts.runAction(actionName,params);        
-        
-        Assert.assertEquals("/jsp/showLogin.jsp", view.getJsp());
-        Assert.assertEquals("login failed,please check your user/pwd", view.getParameters().get("message"));
-	}
-}
+package com.coderising.litestruts;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+
+
+
+
+public class StrutsTest {
+
+	@Test
+	public void testLoginActionSuccess() {
+		
+		String actionName = "login";
+        
+		Map<String,String> params = new HashMap<String,String>();
+        params.put("name","test");
+        params.put("password","1234");
+        
+        
+        View view  = Struts.runAction(actionName,params);        
+        
+        Assert.assertEquals("/jsp/homepage.jsp", view.getJsp());
+        Assert.assertEquals("login successful", view.getParameters().get("message"));
+	}
+
+	@Test
+	public void testLoginActionFailed() {
+		String actionName = "login";
+		Map<String,String> params = new HashMap<String,String>();
+        params.put("name","test");
+        params.put("password","123456"); //密码和预设的不一致
+        
+        View view  = Struts.runAction(actionName,params);        
+        
+        Assert.assertEquals("/jsp/showLogin.jsp", view.getJsp());
+        Assert.assertEquals("login failed,please check your user/pwd", view.getParameters().get("message"));
+	}
+}
diff --git a/liuxin/src/com/coderising/litestruts/View.java b/liuxin/src/com/coderising/litestruts/View.java
index 0194c681f..07df2a5da 100644
--- a/liuxin/src/com/coderising/litestruts/View.java
+++ b/liuxin/src/com/coderising/litestruts/View.java
@@ -1,23 +1,23 @@
-package com.coderising.litestruts;
-
-import java.util.Map;
-
-public class View {
-	private String jsp;
-	private Map parameters;
-	
-	public String getJsp() {
-		return jsp;
-	}
-	public View setJsp(String jsp) {
-		this.jsp = jsp;
-		return this;
-	}
-	public Map getParameters() {
-		return parameters;
-	}
-	public View setParameters(Map parameters) {
-		this.parameters = parameters;
-		return this;
-	}
-}
+package com.coderising.litestruts;
+
+import java.util.Map;
+
+public class View {
+	private String jsp;
+	private Map parameters;
+	
+	public String getJsp() {
+		return jsp;
+	}
+	public View setJsp(String jsp) {
+		this.jsp = jsp;
+		return this;
+	}
+	public Map getParameters() {
+		return parameters;
+	}
+	public View setParameters(Map parameters) {
+		this.parameters = parameters;
+		return this;
+	}
+}
diff --git a/liuxin/src/com/coderising/litestruts/struts.xml b/liuxin/src/com/coderising/litestruts/struts.xml
index ae0ce37fd..dd598a366 100644
--- a/liuxin/src/com/coderising/litestruts/struts.xml
+++ b/liuxin/src/com/coderising/litestruts/struts.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<struts>
-    <action name="login" class="com.coderising.action.LoginAction">
-        <result name="success">/jsp/homepage.jsp</result>
-        <result name="fail">/jsp/showLogin.jsp</result>
-    </action>
-    <action name="logout" class="com.coderising.action.LogoutAction">
-    	<result name="success">/jsp/welcome.jsp</result>
-    	<result name="error">/jsp/error.jsp</result>
-    </action>
-</struts>
+<?xml version="1.0" encoding="UTF-8"?>
+<struts>
+    <action name="login" class="com.coderising.action.LoginAction">
+        <result name="success">/jsp/homepage.jsp</result>
+        <result name="fail">/jsp/showLogin.jsp</result>
+    </action>
+    <action name="logout" class="com.coderising.action.LogoutAction">
+    	<result name="success">/jsp/welcome.jsp</result>
+    	<result name="error">/jsp/error.jsp</result>
+    </action>
+</struts>
\ No newline at end of file
