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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ DEFINITION_ORDER
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ project
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1488025326268
+
+
+ 1488025326268
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No facets are configured
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.8
+
+
+
+
+
+
+
+
+
+
+
+ coding2017
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+<<<<<<< HEAD:group01/1664823950/.project
1664823950
+=======
+ 1264835468
+>>>>>>> master:group17/1264835468/.project
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 guigit 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 @@
+
+
+
+
+
+
+
+
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 @@
+
+
+ week1
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
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= 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
+
+
+
+
+
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 @@
+
+
+ 20170224-01-ArrayList
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
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(valuet.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){//Ϊգheadlastָ½ڵ㣨Ϊ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 @@
+
+
+
+
+
+
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 @@
+
+
+ JavaStudy
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
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;ioldCapacity){
+ 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 @@
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1488014668818
+
+
+ 1488014668818
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+ 1519504320Learning
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Android Lint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1488003825215
+
+
+ 1488003825215
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No facets are configured
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.7
+
+
+
+
+
+
+
+
+
+
+
+ src
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
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 @@
+
+
+ 001DataStructure
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.springsource.ide.eclipse.gradle.core.nature
+ org.eclipse.jdt.core.javanature
+
+
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 currentIndex0&&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 implements List {
+
+ 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 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 {
+
+ 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 {
+
+ 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 implements List {
+
+ 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 iterator() {
+ return new Itr();
+ }
+
+ private class Itr implements Iterator {
+
+ 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
+ * @Description: 定义一组操作有序列表的接口
+ * @author: xdx
+ * @date: 2017年2月21日 下午8:53:52
+ */
+public interface List {
+
+ /**
+ * 添加元素
+ *
+ * @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 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 {
+
+ 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 {
+
+ 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 2月25日, 2017
+ */
+public class ArrayListTest {
+
+ private List 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 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 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 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 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 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 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 testList = new ArrayList<>();
+ Assert.assertTrue(testList.add(7));
+ Assert.assertTrue(testList.add(8));
+ Assert.assertTrue(testList.add(9));
+ Iterator iterator = testList.iterator();
+ Assert.assertNotNull(iterator);
+ while(iterator.hasNext()) {
+ System.out.println(iterator.next());
+ }
+ List testListByDel = new ArrayList<>();
+ Assert.assertTrue(testListByDel.add("张三"));
+ Assert.assertTrue(testListByDel.add("李四"));
+ Assert.assertTrue(testListByDel.add("王五"));
+ Iterator 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 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 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 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 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 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 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 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 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 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 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 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 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
+ * @since 二月 25, 2017
+ * @version 1.0
+ */
+public class QueueTest {
+
+ private Queue 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 testQueue = new Queue<>();
+ testQueue.enQueue("刘备");
+ testQueue.enQueue("关羽");
+ testQueue.enQueue("张飞");
+ System.out.println(testQueue);
+ }
+
+ /**
+ *
+ * Method: deQueue()
+ *
+ */
+ @Test
+ public void testDeQueue() throws Exception {
+
+ Queue 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 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 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 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 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 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 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 @@
+
+
+
+
+
+
+
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 @@
+
+
+ DataStructure
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
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 @@
+
+
+ 4.0.0
+
+ homework1
+ homework
+ 1.0-SNAPSHOT
+
+
+
+
+ junit
+ junit
+ 4.12
+
+
+
+ com.alibaba
+ fastjson
+ 1.2.7
+
+
+
+
\ 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 @@
+
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 @@
+
+
+
+
+
+
+
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 @@
+
+
+ Coderising
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
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;
+ }
+
+ /**
+ * Ѿõ飬 a1a2 , һµa3, ʹa3 a1a2 Ԫأ Ȼ
+ * 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[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 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; iindex; 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 lstint = new ArrayList();
+ lstint.add(1);
+ lstint.add(2);
+ lstint.add(3);
+
+ // Iterator遍历一
+ Iterator 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 guigit 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 {
+ private ArrayList elementData = new ArrayList();
+ 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 || 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 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 implements List {
@@ -109,3 +110,116 @@ public void remove() {
}
}
}
+=======
+package com.coding.basic;
+
+public class ArrayList implements List {
+
+ 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 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 {
+ 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 {
- boolean hasNext();
-
- E next();
-
- void remove();
-}
+package com.coding.basic;
+
+public interface Iterator {
+ 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 implements List {
- private int size = 0;
- private Node head = new Node<>();
- private Node 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 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, cursor, cursor.next);
- ++size;
- }
-
- public E get(int index) {
- if (index < 0 || index >= size) {
- throw new IndexOutOfBoundsException(Integer.toString(index));
- }
- Node 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 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 data = null;
- Node prev = null;
- Node next = null;
-
- public Node() {
- }
-
- public Node(E e, Node p, Node n) {
- data = e;
- prev = p;
- next = n;
- }
- }
-
- private class LinkedListIterator implements Iterator {
- Node 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 nextNode = currentNode.next;
- currentNode.next.prev = currentNode.prev;
- currentNode.prev.next = currentNode.next;
- currentNode = nextNode;
- --size;
- }
- }
-}
+package com.coding.basic;
+
+public class LinkedList implements List {
+ private int size = 0;
+ private Node head = new Node<>();
+ private Node 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 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, cursor, cursor.next);
+ ++size;
+ }
+
+ public E get(int index) {
+ if (index < 0 || index >= size) {
+ throw new IndexOutOfBoundsException(Integer.toString(index));
+ }
+ Node 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 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 data = null;
+ Node prev = null;
+ Node next = null;
+
+ public Node() {
+ }
+
+ public Node(E e, Node p, Node n) {
+ data = e;
+ prev = p;
+ next = n;
+ }
+ }
+
+ private class LinkedListIterator implements Iterator {
+ Node 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 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 {
- 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 iterator();
-}
+package com.coding.basic;
+
+public interface List {
+ 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 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 {
- private LinkedList 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 {
+ private LinkedList 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 {
- private LinkedList 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 {
+ private LinkedList 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(indexsize){
- 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(indexsize){
+ 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 > 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 > 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(oldCapacityb){
- 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
-
-
-
-
-
-
+
+
+
+
+
+
+
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 @@
-
-
- 20170219
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
-
-
+
+
+ 20170219
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
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 linkedList = new java.util.LinkedList();
- 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 linkedList = new java.util.LinkedList();
+ 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 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中的 配置,以及execute的返回值, 确定哪一个jsp,
- 放到View对象的jsp字段中。
-
- */
-
- return null;
- }
-
-}
+package com.coderising.litestruts;
+
+import java.util.Map;
+
+
+
+public class Struts {
+
+ public static View runAction(String actionName, Map 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中的 配置,以及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 params = new HashMap();
- 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 params = new HashMap();
- 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 params = new HashMap();
+ 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 params = new HashMap();
+ 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 @@
-
-
-
- /jsp/homepage.jsp
- /jsp/showLogin.jsp
-
-
- /jsp/welcome.jsp
- /jsp/error.jsp
-
-
+
+
+
+ /jsp/homepage.jsp
+ /jsp/showLogin.jsp
+
+
+ /jsp/welcome.jsp
+ /jsp/error.jsp
+
+
\ No newline at end of file