diff --git a/group14/187114392/work_1_20170225/.classpath b/group14/187114392/homework/.classpath
similarity index 100%
rename from group14/187114392/work_1_20170225/.classpath
rename to group14/187114392/homework/.classpath
diff --git a/group14/187114392/homework/.gitignore b/group14/187114392/homework/.gitignore
new file mode 100644
index 0000000000..a775f15365
--- /dev/null
+++ b/group14/187114392/homework/.gitignore
@@ -0,0 +1,3 @@
+bin/*
+.idea/*
+.settings/*
diff --git a/group14/187114392/work_1_20170225/.project b/group14/187114392/homework/.project
similarity index 100%
rename from group14/187114392/work_1_20170225/.project
rename to group14/187114392/homework/.project
diff --git a/group14/187114392/work_1_20170225/ReadMe.md b/group14/187114392/homework/ReadMe.md
similarity index 100%
rename from group14/187114392/work_1_20170225/ReadMe.md
rename to group14/187114392/homework/ReadMe.md
diff --git a/group14/187114392/work_1_20170225/src/Main.java b/group14/187114392/homework/src/Main.java
similarity index 100%
rename from group14/187114392/work_1_20170225/src/Main.java
rename to group14/187114392/homework/src/Main.java
diff --git a/group14/187114392/homework/src/com/array/ArrayUtil.java b/group14/187114392/homework/src/com/array/ArrayUtil.java
new file mode 100644
index 0000000000..e5ddb476a6
--- /dev/null
+++ b/group14/187114392/homework/src/com/array/ArrayUtil.java
@@ -0,0 +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;
+ }
+
+
+}
diff --git a/group14/187114392/homework/src/com/coderising/download/DownloadThread.java b/group14/187114392/homework/src/com/coderising/download/DownloadThread.java
new file mode 100644
index 0000000000..342b917a3f
--- /dev/null
+++ b/group14/187114392/homework/src/com/coderising/download/DownloadThread.java
@@ -0,0 +1,41 @@
+package com.coderising.download;
+
+import com.coderising.download.api.Connection;
+
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.util.concurrent.CountDownLatch;
+
+
+public class DownloadThread extends Thread{
+
+ Connection conn;
+ CountDownLatch latch;
+ String localpath;
+ RandomAccessFile raf;
+ int startPos;
+ int endPos;
+
+ public DownloadThread(Connection conn, int startPos, int endPos, String localpath ,RandomAccessFile raf , CountDownLatch latch){
+ this.conn = conn;
+ this.startPos = startPos;
+ this.endPos = endPos;
+ this.latch = latch;
+ this.localpath = localpath;
+ this.raf = raf;
+ }
+
+ public void run(){
+ try {
+ RandomAccessFile raf = new RandomAccessFile(localpath,"rwd");
+ byte[] slice_bytes = conn.read(startPos, endPos);
+ raf.seek(startPos);
+ raf.write(slice_bytes,0,slice_bytes.length);
+ raf.close();
+ latch.countDown();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ }
+ }
+}
diff --git a/group14/187114392/homework/src/com/coderising/download/FileDownloader.java b/group14/187114392/homework/src/com/coderising/download/FileDownloader.java
new file mode 100644
index 0000000000..f79497f4e5
--- /dev/null
+++ b/group14/187114392/homework/src/com/coderising/download/FileDownloader.java
@@ -0,0 +1,73 @@
+package com.coderising.download;
+
+import com.coderising.download.api.Connection;
+import com.coderising.download.api.ConnectionException;
+import com.coderising.download.api.ConnectionManager;
+import com.coderising.download.api.DownloadListener;
+
+
+public class FileDownloader {
+
+ String url;
+
+ DownloadListener listener;
+
+ ConnectionManager cm;
+
+
+ public FileDownloader(String _url) {
+ this.url = _url;
+
+ }
+
+ public void execute(){
+ // 在这里实现你的代码, 注意: 需要用多线程实现下载
+ // 这个类依赖于其他几个接口, 你需要写这几个接口的实现代码
+ // (1) ConnectionManager , 可以打开一个连接,通过Connection可以读取其中的一段(用startPos, endPos来指定)
+ // (2) DownloadListener, 由于是多线程下载, 调用这个类的客户端不知道什么时候结束,所以你需要实现当所有
+ // 线程都执行完以后, 调用listener的notifiedFinished方法, 这样客户端就能收到通知。
+ // 具体的实现思路:
+ // 1. 需要调用ConnectionManager的open方法打开连接, 然后通过Connection.getContentLength方法获得文件的长度
+ // 2. 至少启动3个线程下载, 注意每个线程需要先调用ConnectionManager的open方法
+ // 然后调用read方法, read方法中有读取文件的开始位置和结束位置的参数, 返回值是byte[]数组
+ // 3. 把byte数组写入到文件中
+ // 4. 所有的线程都下载完成以后, 需要调用listener的notifiedFinished方法
+
+ // 下面的代码是示例代码, 也就是说只有一个线程, 你需要改造成多线程的。
+ Connection conn = null;
+ try {
+
+ conn = cm.open(this.url);
+
+ int length = conn.getContentLength();
+
+// new DownloadThread(conn,0,length-1).start();
+
+ } catch (ConnectionException e) {
+ e.printStackTrace();
+ }finally{
+ if(conn != null){
+ conn.close();
+ }
+ }
+
+
+
+
+ }
+
+ public void setListener(DownloadListener listener) {
+ this.listener = listener;
+ }
+
+
+
+ public void setConnectionManager(ConnectionManager ucm){
+ this.cm = ucm;
+ }
+
+ public DownloadListener getListener(){
+ return this.listener;
+ }
+
+}
\ No newline at end of file
diff --git a/group14/187114392/homework/src/com/coderising/download/FileDownloader_real.java b/group14/187114392/homework/src/com/coderising/download/FileDownloader_real.java
new file mode 100644
index 0000000000..0ede039aeb
--- /dev/null
+++ b/group14/187114392/homework/src/com/coderising/download/FileDownloader_real.java
@@ -0,0 +1,99 @@
+package com.coderising.download;
+
+import com.coderising.download.api.Connection;
+import com.coderising.download.api.ConnectionException;
+import com.coderising.download.api.ConnectionManager;
+import com.coderising.download.api.DownloadListener;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.util.concurrent.CountDownLatch;
+
+
+public class FileDownloader_real {
+
+ String url;
+
+ DownloadListener listener;
+
+ ConnectionManager cm;
+
+ CountDownLatch latch;
+
+ String localpath;
+
+ int thread_count;
+
+ public FileDownloader_real(String _url, int thread_count , String localpath , CountDownLatch latch) {
+ this.url = _url;
+ this.thread_count = thread_count;
+ this.latch = latch;
+ this.localpath = localpath;
+ }
+
+ public void execute(){
+ // 在这里实现你的代码, 注意: 需要用多线程实现下载
+ // 这个类依赖于其他几个接口, 你需要写这几个接口的实现代码
+ // (1) ConnectionManager , 可以打开一个连接,通过Connection可以读取其中的一段(用startPos, endPos来指定)
+ // (2) DownloadListener, 由于是多线程下载, 调用这个类的客户端不知道什么时候结束,所以你需要实现当所有
+ // 线程都执行完以后, 调用listener的notifiedFinished方法, 这样客户端就能收到通知。
+ // 具体的实现思路:
+ // 1. 需要调用ConnectionManager的open方法打开连接, 然后通过Connection.getContentLength方法获得文件的长度
+ // 2. 至少启动3个线程下载, 注意每个线程需要先调用ConnectionManager的open方法
+ // 然后调用read方法, read方法中有读取文件的开始位置和结束位置的参数, 返回值是byte[]数组
+ // 3. 把byte数组写入到文件中
+ // 4. 所有的线程都下载完成以后, 需要调用listener的notifiedFinished方法
+
+ // 下面的代码是示例代码, 也就是说只有一个线程, 你需要改造成多线程的。
+ Connection conn = null;
+ try {
+ conn = cm.open(this.url);
+ int length = conn.getContentLength();
+ System.out.printf("length is :%s \n" ,length);
+ int slice_size = length / thread_count;
+ RandomAccessFile raf = new RandomAccessFile(localpath,"rwd");
+ raf.setLength(length);
+ raf.close();
+ for (int i = 0; i < thread_count; i++) {
+ int start_pos = i * slice_size;
+ int end_pos = start_pos + slice_size - 1;
+ if (i == thread_count - 1) {
+ end_pos = length - 1;
+ }
+ Connection conn_t = cm.open(this.url);
+ new DownloadThread(conn_t,start_pos,end_pos,localpath,raf,latch).start();
+ }
+ latch.await();
+ }
+ catch (ConnectionException e) {
+ e.printStackTrace();
+ }
+ catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ finally {
+ if(conn != null){
+ conn.close();
+ }
+ }
+ }
+
+ public void setListener(DownloadListener listener) {
+ this.listener = listener;
+ }
+
+ public void setConnectionManager(ConnectionManager ucm){
+ this.cm = ucm;
+ }
+
+ public DownloadListener getListener(){
+ return this.listener;
+ }
+
+}
diff --git a/group14/187114392/homework/src/com/coderising/download/api/Connection.java b/group14/187114392/homework/src/com/coderising/download/api/Connection.java
new file mode 100644
index 0000000000..0957eaf7f4
--- /dev/null
+++ b/group14/187114392/homework/src/com/coderising/download/api/Connection.java
@@ -0,0 +1,23 @@
+package com.coderising.download.api;
+
+import java.io.IOException;
+
+public interface Connection {
+ /**
+ * 给定开始和结束位置, 读取数据, 返回值是字节数组
+ * @param startPos 开始位置, 从0开始
+ * @param endPos 结束位置
+ * @return
+ */
+ public byte[] read(int startPos,int endPos) throws IOException;
+ /**
+ * 得到数据内容的长度
+ * @return
+ */
+ public int getContentLength();
+
+ /**
+ * 关闭连接
+ */
+ public void close();
+}
diff --git a/group14/187114392/homework/src/com/coderising/download/api/ConnectionException.java b/group14/187114392/homework/src/com/coderising/download/api/ConnectionException.java
new file mode 100644
index 0000000000..1551a80b3d
--- /dev/null
+++ b/group14/187114392/homework/src/com/coderising/download/api/ConnectionException.java
@@ -0,0 +1,5 @@
+package com.coderising.download.api;
+
+public class ConnectionException extends Exception {
+
+}
diff --git a/group14/187114392/homework/src/com/coderising/download/api/ConnectionManager.java b/group14/187114392/homework/src/com/coderising/download/api/ConnectionManager.java
new file mode 100644
index 0000000000..ce045393b1
--- /dev/null
+++ b/group14/187114392/homework/src/com/coderising/download/api/ConnectionManager.java
@@ -0,0 +1,10 @@
+package com.coderising.download.api;
+
+public interface ConnectionManager {
+ /**
+ * 给定一个url , 打开一个连接
+ * @param url
+ * @return
+ */
+ public Connection open(String url) throws ConnectionException;
+}
diff --git a/group14/187114392/homework/src/com/coderising/download/api/DownloadListener.java b/group14/187114392/homework/src/com/coderising/download/api/DownloadListener.java
new file mode 100644
index 0000000000..bf9807b307
--- /dev/null
+++ b/group14/187114392/homework/src/com/coderising/download/api/DownloadListener.java
@@ -0,0 +1,5 @@
+package com.coderising.download.api;
+
+public interface DownloadListener {
+ public void notifyFinished();
+}
diff --git a/group14/187114392/homework/src/com/coderising/download/impl/ConnectionImpl.java b/group14/187114392/homework/src/com/coderising/download/impl/ConnectionImpl.java
new file mode 100644
index 0000000000..dc27cee4f7
--- /dev/null
+++ b/group14/187114392/homework/src/com/coderising/download/impl/ConnectionImpl.java
@@ -0,0 +1,47 @@
+package com.coderising.download.impl;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import com.coderising.download.api.Connection;
+
+public class ConnectionImpl implements Connection{
+ HttpURLConnection urlConnection = null;
+
+ public ConnectionImpl(HttpURLConnection urlConnection) {
+ this.urlConnection = urlConnection;
+ }
+
+ @Override
+ public byte[] read(int startPos, int endPos) throws IOException {
+ urlConnection.setRequestMethod("GET");
+ urlConnection.setRequestProperty("Range","bytes=" + startPos + "-" + endPos);
+ urlConnection.setConnectTimeout(5000);
+ ByteArrayOutputStream buffer_array = new ByteArrayOutputStream(endPos - startPos);
+ if (urlConnection.getResponseCode() == 206) {
+ InputStream inputStream = urlConnection.getInputStream();
+ byte[] buffer = new byte[1024];
+ int len;
+ while ((len = inputStream.read(buffer)) != -1) {
+ buffer_array.write(buffer,0,len);
+ }
+ System.out.printf("input stream ,startp :%s , endp:%s , result length is :%d \n",startPos,endPos,buffer_array.size());
+ inputStream.close();
+ buffer_array.close();
+ }
+ urlConnection.disconnect();
+ return buffer_array.toByteArray();
+ }
+
+ @Override
+ public int getContentLength() {
+ return urlConnection.getContentLength();
+ }
+
+ @Override
+ public void close() {
+ urlConnection.disconnect();
+ }
+
+}
diff --git a/group14/187114392/homework/src/com/coderising/download/impl/ConnectionManagerImpl.java b/group14/187114392/homework/src/com/coderising/download/impl/ConnectionManagerImpl.java
new file mode 100644
index 0000000000..a3cba48a51
--- /dev/null
+++ b/group14/187114392/homework/src/com/coderising/download/impl/ConnectionManagerImpl.java
@@ -0,0 +1,44 @@
+package com.coderising.download.impl;
+
+import com.coderising.download.api.Connection;
+import com.coderising.download.api.ConnectionException;
+import com.coderising.download.api.ConnectionManager;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.client.SystemDefaultCredentialsProvider;
+import org.apache.http.util.EntityUtils;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+
+public class ConnectionManagerImpl implements ConnectionManager {
+
+ @Override
+ public Connection open(String url) throws ConnectionException {
+// HttpGet request = new HttpGet(url);
+// String result = "";
+// try {
+// HttpResponse response = HttpClients.createDefault().execute(request);
+// if(response.getStatusLine().getStatusCode()==200){
+// result = EntityUtils.toString(response.getEntity());
+// }
+// System.out.println("result length is " + result.length());
+// } catch (IOException e) {
+// e.printStackTrace();
+// }
+ ConnectionImpl conn_impl = null;
+
+ try {
+ URL url_path = new URL(url);
+ HttpURLConnection urlconnection = (HttpURLConnection) url_path.openConnection();
+ conn_impl = new ConnectionImpl(urlconnection);
+ } catch (IOException e) {
+
+ }
+ return conn_impl;
+ }
+
+}
diff --git a/group14/187114392/work_1_20170225/src/com/coding/basic/ArrayList.java b/group14/187114392/homework/src/com/coding/basic/ArrayList.java
similarity index 100%
rename from group14/187114392/work_1_20170225/src/com/coding/basic/ArrayList.java
rename to group14/187114392/homework/src/com/coding/basic/ArrayList.java
diff --git a/group14/187114392/work_1_20170225/src/com/coding/basic/BinaryTreeNode.java b/group14/187114392/homework/src/com/coding/basic/BinaryTreeNode.java
similarity index 100%
rename from group14/187114392/work_1_20170225/src/com/coding/basic/BinaryTreeNode.java
rename to group14/187114392/homework/src/com/coding/basic/BinaryTreeNode.java
diff --git a/group14/187114392/work_1_20170225/src/com/coding/basic/Iterator.java b/group14/187114392/homework/src/com/coding/basic/Iterator.java
similarity index 100%
rename from group14/187114392/work_1_20170225/src/com/coding/basic/Iterator.java
rename to group14/187114392/homework/src/com/coding/basic/Iterator.java
diff --git a/group14/187114392/work_1_20170225/src/com/coding/basic/LinkedList.java b/group14/187114392/homework/src/com/coding/basic/LinkedList.java
similarity index 100%
rename from group14/187114392/work_1_20170225/src/com/coding/basic/LinkedList.java
rename to group14/187114392/homework/src/com/coding/basic/LinkedList.java
diff --git a/group14/187114392/work_1_20170225/src/com/coding/basic/List.java b/group14/187114392/homework/src/com/coding/basic/List.java
similarity index 100%
rename from group14/187114392/work_1_20170225/src/com/coding/basic/List.java
rename to group14/187114392/homework/src/com/coding/basic/List.java
diff --git a/group14/187114392/work_1_20170225/src/com/coding/basic/Queue.java b/group14/187114392/homework/src/com/coding/basic/Queue.java
similarity index 100%
rename from group14/187114392/work_1_20170225/src/com/coding/basic/Queue.java
rename to group14/187114392/homework/src/com/coding/basic/Queue.java
diff --git a/group14/187114392/work_1_20170225/src/com/coding/basic/Stack.java b/group14/187114392/homework/src/com/coding/basic/Stack.java
similarity index 100%
rename from group14/187114392/work_1_20170225/src/com/coding/basic/Stack.java
rename to group14/187114392/homework/src/com/coding/basic/Stack.java
diff --git a/group14/187114392/work_1_20170225/test/ArrayList_Test.java b/group14/187114392/homework/test/ArrayList_Test.java
similarity index 100%
rename from group14/187114392/work_1_20170225/test/ArrayList_Test.java
rename to group14/187114392/homework/test/ArrayList_Test.java
diff --git a/group14/187114392/homework/test/FileDownloaderTest.java b/group14/187114392/homework/test/FileDownloaderTest.java
new file mode 100644
index 0000000000..fa1263d487
--- /dev/null
+++ b/group14/187114392/homework/test/FileDownloaderTest.java
@@ -0,0 +1,107 @@
+import com.coderising.download.FileDownloader;
+import com.coderising.download.FileDownloader_real;
+import com.coderising.download.api.Connection;
+import com.coderising.download.api.ConnectionException;
+import com.coderising.download.api.ConnectionManager;
+import com.coderising.download.api.DownloadListener;
+import com.coderising.download.impl.ConnectionImpl;
+import com.coderising.download.impl.ConnectionManagerImpl;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import java.util.concurrent.CountDownLatch;
+import java.io.IOException;
+
+public class FileDownloaderTest {
+ boolean downloadFinished = false;
+ int thread_count;
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ @Test
+ public void testFirstHttpGet() {
+
+ String url = "http://127.0.0.1/test/climb.jpg";
+
+ ConnectionManager cm = new ConnectionManagerImpl();
+ Connection conn = null;
+ try {
+ conn = cm.open(url);
+ Integer content_length = conn.getContentLength();
+ } catch (ConnectionException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void testDownload() {
+ thread_count = 10;
+// String url = "http://localhost:8080/test.jpg";
+ CountDownLatch latch = new CountDownLatch(thread_count);
+
+ String url = "http://127.0.0.1/test/climb.jpg";
+ String localpath = "G:\\Projects\\187114392\\haha.jpg";
+ FileDownloader_real downloader = new FileDownloader_real(url,thread_count,localpath, latch);
+
+ ConnectionManager cm = new ConnectionManagerImpl();
+
+ downloader.setConnectionManager(cm);
+
+ downloader.setListener(new DownloadListener() {
+ @Override
+ public void notifyFinished() {
+ downloadFinished = true;
+ }
+
+ });
+ downloader.execute();
+ // 等待多线程下载程序执行完毕
+// while (!downloadFinished) {
+// try {
+// System.out.println("还没有下载完成,休眠五秒");
+// //休眠5秒
+// Thread.sleep(5000);
+// } catch (InterruptedException e) {
+// e.printStackTrace();
+// }
+// }
+ System.out.println("下载完成!");
+ try {
+ Thread.sleep(1000);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void testIdeaJarDownload2() {
+ thread_count = 9;
+ CountDownLatch latch = new CountDownLatch(thread_count);
+
+ String filename = "idea.jar";
+ String url = "http://127.0.0.1/test/" + filename;
+ String localpath = "G:\\Projects\\187114392\\" + filename;
+ FileDownloader_real downloader = new FileDownloader_real(url,thread_count,localpath, latch);
+ ConnectionManager cm = new ConnectionManagerImpl();
+
+ downloader.setConnectionManager(cm);
+
+ downloader.setListener(new DownloadListener() {
+ @Override
+ public void notifyFinished() {
+ downloadFinished = true;
+ }
+
+ });
+ downloader.execute();
+ System.out.println("下载完成!");
+ }
+
+
+
+}
diff --git a/group14/187114392/work_1_20170225/test/LinkedList_Test.java b/group14/187114392/homework/test/LinkedList_Test.java
similarity index 100%
rename from group14/187114392/work_1_20170225/test/LinkedList_Test.java
rename to group14/187114392/homework/test/LinkedList_Test.java
diff --git a/group14/187114392/work_1_20170225/test/Queue_Test.java b/group14/187114392/homework/test/Queue_Test.java
similarity index 100%
rename from group14/187114392/work_1_20170225/test/Queue_Test.java
rename to group14/187114392/homework/test/Queue_Test.java
diff --git a/group14/187114392/work_1_20170225/test/Stack_Test.java b/group14/187114392/homework/test/Stack_Test.java
similarity index 100%
rename from group14/187114392/work_1_20170225/test/Stack_Test.java
rename to group14/187114392/homework/test/Stack_Test.java
diff --git a/group14/187114392/work_1_20170225/.gitignore b/group14/187114392/work_1_20170225/.gitignore
deleted file mode 100644
index ae3c172604..0000000000
--- a/group14/187114392/work_1_20170225/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/group14/187114392/work_1_20170225/.idea/.name b/group14/187114392/work_1_20170225/.idea/.name
deleted file mode 100644
index 9769cfad31..0000000000
--- a/group14/187114392/work_1_20170225/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-2017Learning
\ No newline at end of file
diff --git a/group14/187114392/work_1_20170225/.idea/compiler.xml b/group14/187114392/work_1_20170225/.idea/compiler.xml
deleted file mode 100644
index 96cc43efa6..0000000000
--- a/group14/187114392/work_1_20170225/.idea/compiler.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/group14/187114392/work_1_20170225/.idea/copyright/profiles_settings.xml b/group14/187114392/work_1_20170225/.idea/copyright/profiles_settings.xml
deleted file mode 100644
index e7bedf3377..0000000000
--- a/group14/187114392/work_1_20170225/.idea/copyright/profiles_settings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/group14/187114392/work_1_20170225/.idea/encodings.xml b/group14/187114392/work_1_20170225/.idea/encodings.xml
deleted file mode 100644
index 97626ba454..0000000000
--- a/group14/187114392/work_1_20170225/.idea/encodings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/group14/187114392/work_1_20170225/.idea/junitgenerator-prj-settings.xml b/group14/187114392/work_1_20170225/.idea/junitgenerator-prj-settings.xml
deleted file mode 100644
index b6bb9db746..0000000000
--- a/group14/187114392/work_1_20170225/.idea/junitgenerator-prj-settings.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/group14/187114392/work_1_20170225/.idea/misc.xml b/group14/187114392/work_1_20170225/.idea/misc.xml
deleted file mode 100644
index 6a48f33378..0000000000
--- a/group14/187114392/work_1_20170225/.idea/misc.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/group14/187114392/work_1_20170225/.idea/modules.xml b/group14/187114392/work_1_20170225/.idea/modules.xml
deleted file mode 100644
index f37bb20093..0000000000
--- a/group14/187114392/work_1_20170225/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/group14/187114392/work_1_20170225/.idea/uiDesigner.xml b/group14/187114392/work_1_20170225/.idea/uiDesigner.xml
deleted file mode 100644
index e96534fb27..0000000000
--- a/group14/187114392/work_1_20170225/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/group14/187114392/work_1_20170225/.idea/work_1_20170225.iml b/group14/187114392/work_1_20170225/.idea/work_1_20170225.iml
deleted file mode 100644
index d6ebd48059..0000000000
--- a/group14/187114392/work_1_20170225/.idea/work_1_20170225.iml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/group14/187114392/work_1_20170225/.idea/workspace.xml b/group14/187114392/work_1_20170225/.idea/workspace.xml
deleted file mode 100644
index 8c5615cc95..0000000000
--- a/group14/187114392/work_1_20170225/.idea/workspace.xml
+++ /dev/null
@@ -1,1295 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1488028819234
-
- 1488028819234
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/group14/187114392/work_1_20170225/.settings/org.eclipse.jdt.core.prefs b/group14/187114392/work_1_20170225/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 3a21537071..0000000000
--- a/group14/187114392/work_1_20170225/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,11 +0,0 @@
-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/group14/187114392/work_1_20170225/2017Learning.iml b/group14/187114392/work_1_20170225/2017Learning.iml
deleted file mode 100644
index c4678227ee..0000000000
--- a/group14/187114392/work_1_20170225/2017Learning.iml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file