From 4550485e298ac7f53b6ce81e606d092569f043c6 Mon Sep 17 00:00:00 2001
From: Harry <chenhaowei93@163.com>
Date: Thu, 23 Feb 2017 16:09:38 +0800
Subject: [PATCH 1/4] Add my first code

except BinaryTreeNode
---
 .../coding2017/basic/ArrayListTest.java       |  14 ++
 .../HarryHook/coding2017/basic/Iterator.java  |   7 +
 .../coding2017/basic/LinkedListTest.java      |  93 ++++++++
 .../HarryHook/coding2017/basic/List.java      |  14 ++
 .../HarryHook/coding2017/basic/ListTest.java  | 118 ++++++++++
 .../coding2017/basic/MyArrayList.java         | 153 ++++++++++++
 .../coding2017/basic/MyLinkedList.java        | 219 ++++++++++++++++++
 .../HarryHook/coding2017/basic/MyQueue.java   |  54 +++++
 .../HarryHook/coding2017/basic/MyStack.java   |  59 +++++
 .../HarryHook/coding2017/basic/QueueTest.java |  33 +++
 .../HarryHook/coding2017/basic/StackTest.java |  40 ++++
 11 files changed, 804 insertions(+)
 create mode 100644 group02/727171008/src/com/github/HarryHook/coding2017/basic/ArrayListTest.java
 create mode 100644 group02/727171008/src/com/github/HarryHook/coding2017/basic/Iterator.java
 create mode 100644 group02/727171008/src/com/github/HarryHook/coding2017/basic/LinkedListTest.java
 create mode 100644 group02/727171008/src/com/github/HarryHook/coding2017/basic/List.java
 create mode 100644 group02/727171008/src/com/github/HarryHook/coding2017/basic/ListTest.java
 create mode 100644 group02/727171008/src/com/github/HarryHook/coding2017/basic/MyArrayList.java
 create mode 100644 group02/727171008/src/com/github/HarryHook/coding2017/basic/MyLinkedList.java
 create mode 100644 group02/727171008/src/com/github/HarryHook/coding2017/basic/MyQueue.java
 create mode 100644 group02/727171008/src/com/github/HarryHook/coding2017/basic/MyStack.java
 create mode 100644 group02/727171008/src/com/github/HarryHook/coding2017/basic/QueueTest.java
 create mode 100644 group02/727171008/src/com/github/HarryHook/coding2017/basic/StackTest.java

diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/ArrayListTest.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/ArrayListTest.java
new file mode 100644
index 0000000000..bd15f2a404
--- /dev/null
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/ArrayListTest.java
@@ -0,0 +1,14 @@
+package com.github.HarryHook.coding2017.basic;
+
+import org.junit.Before;
+import com.github.HarryHook.coding2017.basic.MyArrayList;
+
+
+public class ArrayListTest extends ListTest {
+	
+	@Before
+	public void setUpArrayList() {
+		aList = new MyArrayList();
+	}
+	
+}
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/Iterator.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/Iterator.java
new file mode 100644
index 0000000000..3fae84a22f
--- /dev/null
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/Iterator.java
@@ -0,0 +1,7 @@
+package com.github.HarryHook.coding2017.basic;
+
+public interface Iterator
+{
+	public boolean hasNext();
+	public Object next();
+}
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/LinkedListTest.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/LinkedListTest.java
new file mode 100644
index 0000000000..314c774dea
--- /dev/null
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/LinkedListTest.java
@@ -0,0 +1,93 @@
+package com.github.HarryHook.coding2017.basic;
+
+import static org.junit.Assert.*;
+import org.junit.Before;
+import org.junit.Test;
+import com.github.HarryHook.coding2017.basic.MyLinkedList;
+
+public class LinkedListTest extends ListTest{
+
+	private MyLinkedList aLinkedList;
+	
+	@Before
+	public void setUpLinkedList() {
+		aList = new MyLinkedList();
+		aLinkedList = new MyLinkedList();
+	}
+
+	@Test
+	public void testAddFirst() {
+		aLinkedList.addFirst(5);
+		assertEquals(5, aLinkedList.get(0));
+		
+		aLinkedList.addFirst(6);
+		assertEquals(6, aLinkedList.get(0));
+		assertEquals(5, aLinkedList.get(1));
+		assertEquals(2, aLinkedList.size());
+	}
+	
+	@Test
+	public void testAddLast() {
+		aLinkedList.addLast("hello");
+		assertEquals("hello", aLinkedList.get(0));
+		
+		aLinkedList.addLast("world");
+		assertEquals("hello", aLinkedList.get(0));
+		assertEquals("world", aLinkedList.get(1));
+		assertEquals(2, aLinkedList.size());
+	}
+	
+	@Test
+	public void testRemoveFirst() {
+		aLinkedList.addLast("hello");
+		aLinkedList.addLast("world");
+		
+		aLinkedList.removeFirst();
+		assertEquals("world", aLinkedList.get(0));
+		assertEquals(1, aLinkedList.size());
+		
+		aLinkedList.removeFirst();
+		assertEquals(0, aLinkedList.size());
+	}
+	
+	@Test
+	public void testRemoveLast() {
+		aLinkedList.addFirst("world");
+		aLinkedList.addFirst("hello");
+		
+		aLinkedList.removeLast();
+		assertEquals("hello", aLinkedList.get(0));
+		assertEquals(1, aLinkedList.size());
+		
+		aLinkedList.removeLast();
+		assertEquals(0, aLinkedList.size());
+	}
+	
+	@Test
+	public void testLinkedListFunctional() {
+		for (int i=1; i<4; i++) {
+			aLinkedList.add(i);  // [1,2,3]
+		}
+		aLinkedList.remove(1);  // [1,3]
+		
+		aLinkedList.add(1, 0);  // [1,0,3]
+		for (int i=4; i<6; i++) {
+			aLinkedList.addFirst(i);  // [5, 4, 1, 0, 3]
+		}
+		assertEquals(5, aLinkedList.size());
+		assertEquals(5, aLinkedList.get(0));
+		assertEquals(1, aLinkedList.get(2));
+		assertEquals(4, aLinkedList.get(3));
+		
+		aLinkedList.remove(3);  // [5, 4, 1, 3]
+		assertEquals(3, aLinkedList.get(aLinkedList.size()-1));
+		aLinkedList.removeLast();  // [5, 4, 1]
+		assertEquals(1, aLinkedList.get(aLinkedList.size()-1));
+		aLinkedList.removeFirst();   // [4,1]
+
+		assertEquals(4, aLinkedList.get(0));
+		assertEquals(1, aLinkedList.get(1));
+		assertEquals(2, aLinkedList.size());
+	}
+	
+}
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/List.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/List.java
new file mode 100644
index 0000000000..f2299e8e83
--- /dev/null
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/List.java
@@ -0,0 +1,14 @@
+package com.github.HarryHook.coding2017.basic;
+
+
+public interface List 
+{
+	public void add(Object o);
+	public void add(int index, Object o);
+	public Object get(int index);
+	public Object remove(int index);
+	public int size();
+	
+	public Iterator iterator();
+}
+
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/ListTest.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/ListTest.java
new file mode 100644
index 0000000000..b5680990ea
--- /dev/null
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/ListTest.java
@@ -0,0 +1,118 @@
+package com.github.HarryHook.coding2017.basic;
+
+import static org.junit.Assert.*;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import com.github.HarryHook.coding2017.basic.Iterator;
+import com.github.HarryHook.coding2017.basic.List;
+
+public class ListTest {
+
+	protected static List aList;
+
+	@Test
+	public void testFunctional() {
+		aList.add(1);
+		aList.add(2);
+		assertEquals(1, aList.get(0));
+		assertEquals(2, aList.get(1));
+		
+		aList.add(3);
+		aList.add(0, 5);
+		aList.add(2, 11);
+		assertEquals(5, aList.get(0));
+		assertEquals(11, aList.get(2));
+		
+		aList.add("hi");
+		assertEquals("hi", aList.get(5));
+		assertEquals(6, aList.size());
+		
+		aList.remove(1);
+		assertEquals(11, aList.get(1));
+		assertEquals(2, aList.get(2));
+		
+		assertEquals(5, aList.size());
+	}
+	
+	@Test
+	public void testAdd() {
+		for (int i=0; i<100; i++)
+			aList.add(i);
+		assertEquals(0, aList.get(0));
+		assertEquals(99, aList.get(99));
+		assertEquals(44, aList.get(44));
+	}
+	
+	@Test
+	public void testRemove() {
+		aList.add(1);
+		aList.add(2);
+		aList.add(3);
+		int u = (Integer)aList.remove(2);
+		assertEquals(3, u);
+		assertEquals(2, aList.size());
+		
+		aList.add(1, 5);
+		u = (Integer)aList.remove(0);
+		assertEquals(1, u);
+		assertEquals(5, aList.get(0));
+		assertEquals(2, aList.get(1));
+		assertEquals(2, aList.size());
+		
+		aList.remove(0);
+		aList.remove(0);
+		assertEquals(0, aList.size());
+		
+
+	}
+	
+	@Test
+	public void testSize() {
+		for (int i=0; i<10; i++)
+			aList.add(i*2);
+		assertEquals(10, aList.size());
+	}
+	
+	@Rule  
+	public ExpectedException expectedEx = ExpectedException.none(); 
+	
+	@Test
+	public void testException() {
+		expectedEx.expect(Exception.class);
+		aList.remove(1);
+		aList.add(3);
+		aList.add(2, 5);
+		expectedEx.expect(Exception.class);
+	}
+	
+	@Test
+	//protected static List aList;
+	 
+	public void testIterator() {
+		Iterator it = aList.iterator();
+		assertEquals(false, it.hasNext());
+		
+		aList.add(1);
+		aList.add(2);
+		aList.add(3);
+		
+		it = aList.iterator();
+		assertEquals(true, it.hasNext());
+		assertEquals(1, it.next());
+		assertEquals(2, it.next());
+		assertEquals(3, it.next());
+		assertEquals(false, it.hasNext());
+		
+		aList.remove(1);
+		it = aList.iterator();
+		assertEquals(true, it.hasNext());
+		assertEquals(1, it.next());
+		assertEquals(3, it.next());
+		assertEquals(false, it.hasNext());	
+	}
+	
+	
+
+}
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyArrayList.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyArrayList.java
new file mode 100644
index 0000000000..3ceb922c53
--- /dev/null
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyArrayList.java
@@ -0,0 +1,153 @@
+/*
+ * created by Harry 2017-2-20 18:53:38
+ * 实现简单的ArrayList,具有基本的增删改查功能
+ */
+package com.github.HarryHook.coding2017.basic;
+
+import java.util.Arrays;
+
+public class MyArrayList implements List 
+{	
+	private int size = 0;    //数组元素个数
+	
+	private Object[] elementData = new Object[10];  //初始化数组大小为10
+			
+	//将元素添加到数组尾部
+	public void add(Object o)
+	{   //需要判断数组空间是否够用
+		ensureCapacity(size + 1);
+		elementData[size++] = o;
+	}
+	//在指定位置添加元素
+	public void add(int index, Object o)
+	{
+		//判断下标记是否越界		
+		if (index > size || index < 0)
+            throw new IndexOutOfBoundsException(
+            "Index: " + index + ", Size: " + size);
+		ensureCapacity(size + 1);
+		//判断当前位置是否有元素，没有元素添加到当前位置；若有，当前元素及之后元素向右移
+		if(elementData[index] == null)
+		{
+			elementData[index] = o;
+		}
+		else
+		{
+			for(int i=elementData.length-1; i>index; i--)  
+			{
+				elementData[i] = elementData[i-1];
+			} 
+			elementData[index] = o;
+		}  		
+		size++;
+		/*
+		   //判断索引位置是否正确
+        if (index > size || index < 0)
+            throw new IndexOutOfBoundsException(
+            "Index: " + index + ", Size: " + size);
+        //扩容检测
+        ensureCapacity(size+1);  
+        /*
+         * 对源数组进行复制处理（位移），从index + 1到size-index。
+         * 主要目的就是空出index位置供数据插入，
+         * 即向右移动当前位于该位置的元素以及所有后续元素。 
+         
+        System.arraycopy(elementData, index, elementData, index + 1,
+                 size - index);
+        //在指定位置赋值
+        elementData[index] = 0;
+        size++;
+        
+        */
+	}
+	
+	public Object get(int index)
+	{
+		return  elementData[index];
+	}
+	
+	public Object remove(int index)
+	{	//涉及到元素移位
+		Object oldValue = elementData[index];
+		for(int i=index; i<elementData.length-1; i++)
+			elementData[i] = elementData[i+1];		
+		elementData[--size] = null;
+		
+		return oldValue;
+	}
+	
+	//判断是否需要给数组扩容
+	public void ensureCapacity(int minCapacity)
+	{  
+	    
+	    int oldCapacity = elementData.length;  
+	    if (minCapacity > oldCapacity) 
+	    {  
+	        Object oldData[] = elementData;   //防止copyof()执行的过程中新内存或者其他进程分配内存时占用旧内存
+	        int newCapacity = (oldCapacity * 3)/2 + 1;  //增加50%+1
+	            if (newCapacity < minCapacity)  
+	                newCapacity = minCapacity;  
+	      // minCapacity is usually close to size, so this is a win:  
+	        elementData = Arrays.copyOf(elementData, newCapacity);  
+	    }  
+	 }
+	
+	//返回数组的大小
+	public int size()
+	{
+		return size;
+	}
+	
+	public Iterator iterator()
+	{
+		return new MyArrayListIterator();
+	}
+	
+	private class MyArrayListIterator implements Iterator
+	{
+		private int cursor = 0;      //记录索引位置         
+		public boolean hasNext()
+		{
+			return cursor != size;    
+		}
+		public Object next() 
+		{  
+			Object next = get(cursor);  
+			cursor ++;  
+			return next;  
+		}
+	}
+	
+	public static void main(String[] args)
+	{
+		MyArrayList myArrays = new MyArrayList();
+	
+		for(int i = 0; i < 19; i++)
+			myArrays.add(i, 55);
+		
+		myArrays.add(3);
+		myArrays.add(0, 11);
+		myArrays.add(1, 2);
+		myArrays.add(3, 5);
+		myArrays.add(2, 1);
+		myArrays.add(7);
+		System.out.println("获取指定位置元素： " + myArrays.get(2));
+		System.out.println("删除指定位置元素： " + myArrays.remove(1));
+		System.out.println("当前元素个数：" + myArrays.size());
+		
+		Print(myArrays);
+			
+	}
+	public static void Print(MyArrayList myArrays)
+	{
+		Iterator it = myArrays.iterator();	
+		System.out.println("对链表中的元素进行打印：");
+		while(it.hasNext())
+			System.out.print(it.next() + " ");
+		System.out.println("");
+		System.out.println("当前元素个数： " + myArrays.size()); 
+
+	}
+	
+}
+
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyLinkedList.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyLinkedList.java
new file mode 100644
index 0000000000..5aeab57496
--- /dev/null
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyLinkedList.java
@@ -0,0 +1,219 @@
+/*
+ * created by Harry 2017-2-21 14:43:41
+ * 实现简单的LinkedList
+ */
+
+package com.github.HarryHook.coding2017.basic;
+
+public class MyLinkedList implements List 
+{
+	private Node head = null;	//头指针
+	private int size = 0;
+	private static  class Node
+	{
+		Object data;
+		Node next;
+	}
+	public void add(Object o) 
+	{
+		addLast(o);
+	}
+	//在指定位置添加元素
+	public void add(int index , Object o)
+	{
+		
+		if (index > size || index < 0)
+            throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);	
+		//存在插入头结点的情况
+		if(index == 0)
+			addFirst(o);
+		else
+		{		//即 index != 0 的情况
+				// p保存待插入节点的前一节点，x指向要插入的节点
+				Node x = head; 
+				Node p = null;
+				int i = 0;
+				while(i < index)
+				{
+					p = x;
+					x = x.next;
+					i++;
+				}
+				Node n = new Node();
+				p.next = n;
+				n.next = x;
+				n.data = o;	
+				size++;
+		}
+		
+	}
+	//返回指定位置元素
+	public Object get(int index)
+	{
+		Node x = head; 
+		int i = 0;
+		while(i < index && x != null)
+		{
+			x = x.next;
+			i++;
+		}
+		return x.data;
+	}
+	
+	//移除指定位置节点
+	public Object remove(int index)
+	{
+		if (index > size || index < 0)
+            throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
+		//先判断是否是头节点
+		if( index == 0)
+		{			
+			return removeFirst();		
+		}
+		else
+		{
+			Node x = head; 
+			Node pre = null;
+			int i = 0;
+			while(i < index)
+			{ 
+				pre = x;
+				x = x.next; 
+				i++;	
+			}
+			Object Data = pre.next.data;
+			pre.next = x.next;
+			x = null;
+			size--;
+			return Data;				
+		}
+
+	}
+	//头部添加节点
+	public void addFirst(Object o)
+	{
+		Node n = new Node();
+		n.next = head;
+		head = n;
+		n.data = o;
+		size++;
+	}
+	//尾部添加节点
+	public void addLast(Object o)
+	{
+		 if (head == null)
+		 {
+			 head = new Node();
+			 head.data = o;
+		 }
+		else
+	    {
+	    	Node x = head; 
+			while(x.next != null)		
+			{
+				x = x.next;
+			}
+			Node n = new Node();
+			x.next = n;
+			n.next = null;
+			n.data = o;
+	    }
+		size++;
+	}
+	//移除第一个节点
+	public Object removeFirst()
+	{
+		Node n = head;
+		Object Data = n.data;
+		head = head.next;
+		n = null;
+		size--;
+		return Data;	
+	}
+	
+	//移除最后一个节点
+	//removeLast()方法存在bug
+	public Object removeLast()
+	{
+		Node x = head; 
+		Node p = null;
+		if(x.next == null)
+		{
+			return removeFirst();
+		}
+		else
+		{
+			while(x.next != null)
+			{
+				p = x;
+				x = x.next;
+			}
+			Object Data = x.data;
+			p.next = null;
+			x = null;       //删除最后一个节点
+			size--;
+			return Data;	
+		}
+	}
+	public int size(){
+		return size;
+	}
+	public Iterator iterator()
+	{
+		return new MyLinkedListIterator();
+	}
+	private class MyLinkedListIterator implements Iterator
+	{
+		private int cursor = 0;      //记录索引位置         
+		public boolean hasNext()
+		{
+			return cursor != size;    
+		}
+		public Object next() 
+		{  
+			Object next = get(cursor);  
+			cursor ++;  
+			return next;  
+		}
+	}
+	public static void main(String[] args)
+	{
+		MyLinkedList myList = new MyLinkedList();
+		myList.add(3);
+		myList.add(5);
+		myList.add(0, 4);
+		myList.add(2, 7);
+		myList.addFirst(1);
+		myList.addLast(6);
+		
+		Print(myList);
+	
+		System.out.println("当前指定位置元素： " + myList.get(1));
+		System.out.println("移除指定位置元素： " + myList.remove(4));
+		Print(myList);
+
+		System.out.println("移除第一个节点元素： " + myList.removeLast());
+		Print(myList);
+		System.out.println("移除最后一个节点元素： " + myList.removeLast());
+		Print(myList);
+		System.out.println("移除最后一个节点元素： " + myList.removeLast());
+		Print(myList);
+		System.out.println("移除最后一个节点元素： " + myList.removeLast());
+		Print(myList);
+		System.out.println("移除最后一个节点元素： " + myList.removeLast());
+		Print(myList);
+
+	}
+	public static void Print(MyLinkedList myList)
+	{
+		Iterator it = myList.iterator();	
+		System.out.println("对链表中的元素进行打印：");
+		while(it.hasNext())
+			System.out.print(it.next() + " ");
+		System.out.println("");
+		System.out.println("当前元素个数： " + myList.size()); 
+		System.out.println("");
+	}
+
+	
+}
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyQueue.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyQueue.java
new file mode 100644
index 0000000000..9b713eaea9
--- /dev/null
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyQueue.java
@@ -0,0 +1,54 @@
+/*
+ * created by Harry 2017-2-22 13:06:43
+ * 实现简单的队列
+ */
+package com.github.HarryHook.coding2017.basic;
+import java.util.*;
+public class MyQueue 
+{	
+	private MyArrayList elementData = new MyArrayList();
+	private int size = 0;
+	//入队
+	public void enQueue(Object o)
+	{		
+		elementData.add(o);
+		size++;
+	}
+	//出队
+	public Object deQueue()
+	{
+		if(isEmpty())
+			throw new NoSuchElementException();
+		Object Data = elementData.remove(0);
+		size--;
+		return Data;
+	}
+	//判断队列是否为空
+	public boolean isEmpty()
+	{
+		return size() == 0;
+	}
+	//队列中元素个数
+	public int size()
+	{
+		return size;
+	}
+	public static void main(String[] args)
+	{
+		MyQueue mq = new MyQueue();
+		mq.enQueue(1);
+		mq.enQueue(2);
+		mq.enQueue(3);
+		mq.enQueue(4);
+		System.out.println("队列出栈，出栈元素为： " + mq.deQueue());
+		System.out.println("队列中元素个数： " + mq.size());
+		System.out.println("队列出栈，出栈元素为： " + mq.deQueue());
+		System.out.println("队列中元素个数： " + mq.size());
+		System.out.println("队列出栈，出栈元素为： " + mq.deQueue());
+		System.out.println("队列中元素个数： " + mq.size());
+		System.out.println("队列出栈，出栈元素为： " + mq.deQueue());
+		System.out.println("队列中元素个数： " + mq.size());
+		//System.out.println("队列出栈，出栈元素为： " + mq.deQueue());
+		//System.out.println("队列中元素个数： " + mq.size());
+	}
+}
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyStack.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyStack.java
new file mode 100644
index 0000000000..c7f87c04e6
--- /dev/null
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyStack.java
@@ -0,0 +1,59 @@
+/*
+ * created by Harry 2017-2-22 10:48:34
+ * 实现简单的Stack
+ */
+package com.github.HarryHook.coding2017.basic;
+
+import java.util.*;
+
+public class MyStack 
+{
+	private MyArrayList elementData = new MyArrayList();
+	private int size = 0;
+	
+	//入栈操作
+	public void push(Object o)
+	{		
+		elementData.add(o);
+		size++;
+	}
+	//出栈操作
+	public Object pop()
+	{
+		Object obj = peek();
+		elementData.remove(size() - 1);
+		size--;
+		return obj;
+	}
+	//获取当前栈顶元素，不用出栈
+	public Object peek()
+	{
+		if(isEmpty())
+			throw new EmptyStackException();
+		return elementData.get(size() - 1);
+	}
+	//判断栈是否为空
+	public boolean isEmpty()
+	{
+		return size() == 0;
+	}
+	//返回栈内元素个数
+	public int size(){
+		return size;
+	}
+	
+	public static void main(String[] args)
+	{
+		MyStack ms = new MyStack();
+		
+		ms.push(1);
+		ms.push(2);
+		ms.push(13);
+		System.out.println("当前栈顶元素是: " + ms.peek());
+		System.out.println("出栈元素是: " + ms.pop());
+		System.out.println("出栈元素是: " + ms.pop());
+		ms.push(12);
+		System.out.println("出栈元素是: " + ms.pop());
+		System.out.println("当前栈顶元素是: " + ms.peek());
+	}
+}
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/QueueTest.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/QueueTest.java
new file mode 100644
index 0000000000..340f79d240
--- /dev/null
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/QueueTest.java
@@ -0,0 +1,33 @@
+package com.github.HarryHook.coding2017.basic;
+
+import static org.junit.Assert.*;
+import org.junit.Before;
+import org.junit.Test;
+import com.github.HarryHook.coding2017.basic.MyQueue;
+
+public class QueueTest {
+	private MyQueue queue;
+	
+	@Before
+	public void setUpQueue() {
+		queue = new MyQueue();
+	}
+	
+	@Test
+	public void testQueueFunctional() {
+		assertEquals(true, queue.isEmpty());
+		queue.enQueue(4);
+		queue.enQueue(2);
+		assertEquals(2, queue.size());
+		assertEquals(false, queue.isEmpty());
+		
+		int i = (Integer)queue.deQueue();
+		assertEquals(4, i);
+		i = (Integer)queue.deQueue();
+		assertEquals(2, i);
+		
+		assertEquals(0, queue.size());
+		assertEquals(true, queue.isEmpty());
+	}
+
+}
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/StackTest.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/StackTest.java
new file mode 100644
index 0000000000..26160faef6
--- /dev/null
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/StackTest.java
@@ -0,0 +1,40 @@
+package com.github.HarryHook.coding2017.basic;
+
+import static org.junit.Assert.*;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import com.github.HarryHook.coding2017.basic.MyStack;
+
+public class StackTest {
+
+	private MyStack stack;
+	
+	@Before
+	public void setUpStack() {
+		stack = new MyStack();
+	}
+
+	@Test
+	public void testStackFunctional() {
+		assertEquals(true, stack.isEmpty());
+		stack.push(4);
+		stack.push(2);
+		assertEquals(2, stack.size());
+		assertEquals(false, stack.isEmpty());
+		
+		int i = (Integer)stack.pop();
+		assertEquals(2, i);
+		
+		i = (Integer)stack.peek();
+		assertEquals(4, i);
+		
+		i = (Integer)stack.pop();
+		assertEquals(4, i);
+		
+		assertEquals(0, stack.size());
+		assertEquals(true, stack.isEmpty());
+	}
+
+}

From 692b81293abbbce56bcebf932f84da5c01adb9ef Mon Sep 17 00:00:00 2001
From: Harry <chenhaowei93@163.com>
Date: Sat, 25 Feb 2017 23:51:58 +0800
Subject: [PATCH 2/4] Add my first code v1.0

BinaryTreeNode has a bug
---
 .../coding2017/basic/ArrayListTest.java       |   3 +-
 .../coding2017/basic/BinaryTreeNode.java      | 121 ++++++++++++++++++
 .../coding2017/basic/BinaryTreeNodeTest.java  |  40 ++++++
 .../coding2017/basic/LinkedListTest.java      |   2 +-
 .../HarryHook/coding2017/basic/ListTest.java  |   8 +-
 .../coding2017/basic/MyArrayList.java         |  32 +++--
 .../src/com/coding/basic/BinaryTreeNode.java  |  93 +++++++++++++-
 liuxin/src/com/coding/basic/insert.java       |  37 ++++++
 8 files changed, 317 insertions(+), 19 deletions(-)
 create mode 100644 group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNode.java
 create mode 100644 group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNodeTest.java
 create mode 100644 liuxin/src/com/coding/basic/insert.java

diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/ArrayListTest.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/ArrayListTest.java
index bd15f2a404..0f22f6ba80 100644
--- a/group02/727171008/src/com/github/HarryHook/coding2017/basic/ArrayListTest.java
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/ArrayListTest.java
@@ -7,7 +7,8 @@
 public class ArrayListTest extends ListTest {
 	
 	@Before
-	public void setUpArrayList() {
+	public void setUpArrayList() 
+	{
 		aList = new MyArrayList();
 	}
 	
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNode.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNode.java
new file mode 100644
index 0000000000..09ad8c0fd5
--- /dev/null
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNode.java
@@ -0,0 +1,121 @@
+/*
+ * Created by Harry 2017-2-23 10:50:39
+ * 实现二叉树,并按二叉查找树插入节点
+ * 能实现基本的功能，但测试时存在问题，传进去的数据为空 2017-2-2523:49:43
+ */
+package com.github.HarryHook.coding2017.basic;
+
+public class BinaryTreeNode 
+{
+	private Integer data;      
+	private BinaryTreeNode left;
+	private BinaryTreeNode right;
+
+	//中序遍历二叉树
+	public void inOrder(BinaryTreeNode node)
+	{
+		if(node != null)
+		{
+			inOrder(node.left);
+			System.out.print(" " + node.data);
+			inOrder(node.right);
+		}	
+	}
+	
+	//获取给节点的值
+	public Integer getData() 
+	{
+		return this.data;
+	}
+	//给一个节点赋值
+	public void setData(Integer 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(Integer obj)
+	{
+		// 新增节点
+        BinaryTreeNode newNode = new BinaryTreeNode();
+        // 当前节点,保留根的值
+        BinaryTreeNode current = this;    
+        // 上个节点
+        BinaryTreeNode parent  = null;
+        // 如果根节点为空
+        if  (this.data == null) 
+        {	
+        	newNode.setData(obj);
+        	newNode.setLeft(null);
+        	newNode.setRight(null);
+            return newNode;
+        }else
+        {
+        	 while (true) 
+             {
+                 parent = current;
+                 if (obj < current.data) 
+                 {
+                     current = current.left;
+                     if (current == null) 
+                     {
+                    	 newNode.setData(obj);
+                     	 newNode.setLeft(null);
+                     	 newNode.setRight(null);
+                         parent.left = newNode;
+                         return newNode;
+                     }
+                 } else 
+                 {
+                     current = current.right;
+                     if (current == null) 
+                     {
+                    	 newNode.setData(obj);
+                     	 newNode.setLeft(null);
+                     	 newNode.setRight(null);
+                         parent.right = newNode;
+                         return newNode;
+                     }
+                 }
+             } 
+        }   
+	}
+
+	public static void main(String[] args)
+	{
+		BinaryTreeNode BTN = new BinaryTreeNode();
+		
+		BTN = BTN.insert(5);
+		System.out.print(BTN.getData() + " ");
+		System.out.print(BTN.insert(2).getData() + " ");
+		System.out.print(BTN.insert(1).getData() + " ");
+		System.out.print(BTN.insert(4).getData() + " ");
+		System.out.print(BTN.insert(6).getData() + " ");
+		System.out.print(BTN.insert(8).getData() + " ");
+		System.out.println("");
+		System.out.println("中序遍历二叉树： ");
+		BTN.inOrder(BTN);	
+	}
+	
+}
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNodeTest.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNodeTest.java
new file mode 100644
index 0000000000..7f706c24b5
--- /dev/null
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNodeTest.java
@@ -0,0 +1,40 @@
+package com.github.HarryHook.coding2017.basic;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import com.github.HarryHook.coding2017.basic.BinaryTreeNode;
+
+public class BinaryTreeNodeTest 
+{
+
+	BinaryTreeNode binaryTreeNode = new BinaryTreeNode();
+
+	@Before
+	public void setUpBinaryTreeNode() 
+	{
+		//binaryTreeNode = new BinaryTreeNode();
+	}
+
+	@Test
+	public void testBinaryTreeNodeFunctional() 
+	{
+		binaryTreeNode.insert(4);
+		binaryTreeNode.insert(1);
+		binaryTreeNode.insert(3);
+		binaryTreeNode.insert(5);
+		binaryTreeNode.insert(2);
+
+		assertEquals(true, 4 == binaryTreeNode.getData());
+		assertEquals(true, 1 == binaryTreeNode.getLeft().getData());
+		assertEquals(true, 5 == binaryTreeNode.getRight().getData());
+		assertEquals(true, 3 == binaryTreeNode.getLeft().getRight().getData());
+		assertEquals(true, 2 == binaryTreeNode.getLeft().getRight().getLeft().getData());
+		
+		//节点为空  说明值没有插进去
+		binaryTreeNode.inOrder(binaryTreeNode);
+	}
+
+}
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/LinkedListTest.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/LinkedListTest.java
index 314c774dea..7c754e37af 100644
--- a/group02/727171008/src/com/github/HarryHook/coding2017/basic/LinkedListTest.java
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/LinkedListTest.java
@@ -77,7 +77,7 @@ public void testLinkedListFunctional() {
 		assertEquals(5, aLinkedList.size());
 		assertEquals(5, aLinkedList.get(0));
 		assertEquals(1, aLinkedList.get(2));
-		assertEquals(4, aLinkedList.get(3));
+		assertEquals(0, aLinkedList.get(3));
 		
 		aLinkedList.remove(3);  // [5, 4, 1, 3]
 		assertEquals(3, aLinkedList.get(aLinkedList.size()-1));
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/ListTest.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/ListTest.java
index b5680990ea..92f84b687c 100644
--- a/group02/727171008/src/com/github/HarryHook/coding2017/basic/ListTest.java
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/ListTest.java
@@ -88,9 +88,9 @@ public void testException() {
 	}
 	
 	@Test
-	//protected static List aList;
 	 
-	public void testIterator() {
+	public void testIterator() 
+	{
 		Iterator it = aList.iterator();
 		assertEquals(false, it.hasNext());
 		
@@ -111,6 +111,10 @@ public void testIterator() {
 		assertEquals(1, it.next());
 		assertEquals(3, it.next());
 		assertEquals(false, it.hasNext());	
+		
+		expectedEx.expect(Exception.class);
+		it.next();
+		
 	}
 	
 	
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyArrayList.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyArrayList.java
index 3ceb922c53..dbfd8aae19 100644
--- a/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyArrayList.java
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/MyArrayList.java
@@ -5,6 +5,7 @@
 package com.github.HarryHook.coding2017.basic;
 
 import java.util.Arrays;
+import java.util.NoSuchElementException;
 
 public class MyArrayList implements List 
 {	
@@ -40,6 +41,7 @@ public void add(int index, Object o)
 			elementData[index] = o;
 		}  		
 		size++;
+		
 		/*
 		   //判断索引位置是否正确
         if (index > size || index < 0)
@@ -62,8 +64,12 @@ public void add(int index, Object o)
 	}
 	
 	public Object get(int index)
-	{
+	{	
+		//若index超出size应该抛出异常
+		if(index >= size)
+			 throw new IndexOutOfBoundsException( "Index: " + index + ", Size: " + size);
 		return  elementData[index];
+		
 	}
 	
 	public Object remove(int index)
@@ -83,7 +89,7 @@ public void ensureCapacity(int minCapacity)
 	    int oldCapacity = elementData.length;  
 	    if (minCapacity > oldCapacity) 
 	    {  
-	        Object oldData[] = elementData;   //防止copyof()执行的过程中新内存或者其他进程分配内存时占用旧内存
+	        //Object oldData[] = elementData;   //防止copyof()执行的过程中新内存或者其他进程分配内存时占用旧内存
 	        int newCapacity = (oldCapacity * 3)/2 + 1;  //增加50%+1
 	            if (newCapacity < minCapacity)  
 	                newCapacity = minCapacity;  
@@ -112,25 +118,33 @@ public boolean hasNext()
 		}
 		public Object next() 
 		{  
-			Object next = get(cursor);  
-			cursor ++;  
-			return next;  
+			  try { 
+		                Object next = get(cursor);  
+		                cursor++;
+		                return next;
+
+	            } catch (IndexOutOfBoundsException e)
+			  	{
+	                throw new NoSuchElementException();
+	            }
+		
 		}
 	}
 	
 	public static void main(String[] args)
 	{
 		MyArrayList myArrays = new MyArrayList();
-	
-		for(int i = 0; i < 19; i++)
-			myArrays.add(i, 55);
-		
 		myArrays.add(3);
 		myArrays.add(0, 11);
 		myArrays.add(1, 2);
 		myArrays.add(3, 5);
 		myArrays.add(2, 1);
 		myArrays.add(7);
+		Print(myArrays);
+		
+		for(int i = 0; i < 19; i++)
+			myArrays.add(i, 55);
+		
 		System.out.println("获取指定位置元素： " + myArrays.get(2));
 		System.out.println("删除指定位置元素： " + myArrays.remove(1));
 		System.out.println("当前元素个数：" + myArrays.size());
diff --git a/liuxin/src/com/coding/basic/BinaryTreeNode.java b/liuxin/src/com/coding/basic/BinaryTreeNode.java
index d7ac820192..736ae328c7 100644
--- a/liuxin/src/com/coding/basic/BinaryTreeNode.java
+++ b/liuxin/src/com/coding/basic/BinaryTreeNode.java
@@ -1,11 +1,51 @@
 package com.coding.basic;
 
-public class BinaryTreeNode {
-	
-	private Object data;
-	private BinaryTreeNode left;
-	private BinaryTreeNode right;
-	
+public class BinaryTreeNode 
+{
+	public static TreeNode root; //根节点
+	public BinaryTreeNode() 
+	{
+        this.root = null;
+    }
+    public TreeNode insert (int key) 
+    {
+		// 新增节点
+		TreeNode newNode = new TreeNode(key);
+		// 当前节点
+		TreeNode current = root;
+		// 上个节点
+		TreeNode parent  = null;
+		// 如果根节点为空
+		if (current == null) 
+		{
+			root = newNode;
+			return newNode;
+		}
+		while (true) 
+		{
+            parent = current;
+            if (key < current.value) 
+            {
+                current = current.left;
+                if (current == null) 
+                {
+                    parent.left = newNode;
+                    return newNode;
+                }
+            } else 
+            {
+                current = current.right;
+                if (current == null) 
+                {
+                    parent.right = newNode;
+                    return newNode;
+                }
+            }
+        }
+    }
+    
+}
+	 
 	public Object getData() {
 		return data;
 	}
@@ -30,3 +70,44 @@ public BinaryTreeNode insert(Object o){
 	}
 	
 }
+
+class TreeNode     //树的节点
+{
+    int value;
+    TreeNode left;
+    TreeNode right;
+
+	public TreeNode(int value) 
+	{
+        this.value = value;
+        left  = null;
+        right = null;
+    }
+}
+
+public class BinaryTreeNodeTest {
+
+    public static void main(String[] args) {
+        BinaryTreeNode b = new BinaryTreeNode();
+        b.insert(3);b.insert(8);b.insert(1);b.insert(4);b.insert(6);
+        b.insert(2);b.insert(10);b.insert(9);b.insert(20);b.insert(25);
+
+        // 打印二叉树
+        b.toString(b.root);
+        System.out.println();
+
+        // 是否存在节点值10
+        TreeNode node01 = b.search(10);
+        System.out.println("是否存在节点值为10 => " + node01.value);
+        // 是否存在节点值11
+        TreeNode node02 = b.search(11);
+        System.out.println("是否存在节点值为11 => " + node02);
+
+        // 删除节点8
+        TreeNode node03 = b.delete(8);
+        System.out.println("删除节点8 => " + node03.value);
+        b.toString(b.root);
+
+
+    }
+}
diff --git a/liuxin/src/com/coding/basic/insert.java b/liuxin/src/com/coding/basic/insert.java
new file mode 100644
index 0000000000..9ded2fcfac
--- /dev/null
+++ b/liuxin/src/com/coding/basic/insert.java
@@ -0,0 +1,37 @@
+    
+    //2017年2月24日17:02:55
+    public BinaryTreeNode insert (Integer key) 
+    {
+        // 新增节点
+        BinaryTreeNode newNode = new BinaryTreeNode(key);
+        // 当前节点
+        BinaryTreeNode current = root;
+        // 上个节点
+        BinaryTreeNode parent  = null;
+        // 如果根节点为空
+        if (current == null) {
+            root = newNode;
+            return newNode;
+        }
+        while (true) 
+        {
+            parent = current;
+            if (key < current.value) 
+            {
+                current = current.left;
+                if (current == null) 
+                {
+                    parent.left = newNode;
+                    return newNode;
+                }
+            } else 
+            {
+                current = current.right;
+                if (current == null) 
+                {
+                    parent.right = newNode;
+                    return newNode;
+                }
+            }
+        }
+    }

From e6ef9f1b191ee66c6cb54d277e84545f83616009 Mon Sep 17 00:00:00 2001
From: Harry <chenhaowei93@163.com>
Date: Sun, 26 Feb 2017 09:40:52 +0800
Subject: [PATCH 3/4] Add my first code v1.1

---
 .../HarryHook/coding2017/basic/BinaryTreeNode.java     |  4 ++--
 .../HarryHook/coding2017/basic/BinaryTreeNodeTest.java | 10 +++++-----
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNode.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNode.java
index 09ad8c0fd5..2d962d9083 100644
--- a/group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNode.java
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNode.java
@@ -25,7 +25,7 @@ public void inOrder(BinaryTreeNode node)
 	//获取给节点的值
 	public Integer getData() 
 	{
-		return this.data;
+		return data;
 	}
 	//给一个节点赋值
 	public void setData(Integer data)
@@ -64,7 +64,7 @@ public BinaryTreeNode insert(Integer obj)
         // 上个节点
         BinaryTreeNode parent  = null;
         // 如果根节点为空
-        if  (this.data == null) 
+        if  (current.data == null) 
         {	
         	newNode.setData(obj);
         	newNode.setLeft(null);
diff --git a/group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNodeTest.java b/group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNodeTest.java
index 7f706c24b5..60d1979713 100644
--- a/group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNodeTest.java
+++ b/group02/727171008/src/com/github/HarryHook/coding2017/basic/BinaryTreeNodeTest.java
@@ -10,29 +10,29 @@
 public class BinaryTreeNodeTest 
 {
 
-	BinaryTreeNode binaryTreeNode = new BinaryTreeNode();
+	BinaryTreeNode binaryTreeNode;
 
 	@Before
 	public void setUpBinaryTreeNode() 
 	{
-		//binaryTreeNode = new BinaryTreeNode();
+		binaryTreeNode = new BinaryTreeNode();
 	}
 
 	@Test
 	public void testBinaryTreeNodeFunctional() 
 	{
-		binaryTreeNode.insert(4);
+		binaryTreeNode = binaryTreeNode.insert(4);
 		binaryTreeNode.insert(1);
 		binaryTreeNode.insert(3);
 		binaryTreeNode.insert(5);
 		binaryTreeNode.insert(2);
-
+		
 		assertEquals(true, 4 == binaryTreeNode.getData());
 		assertEquals(true, 1 == binaryTreeNode.getLeft().getData());
 		assertEquals(true, 5 == binaryTreeNode.getRight().getData());
 		assertEquals(true, 3 == binaryTreeNode.getLeft().getRight().getData());
 		assertEquals(true, 2 == binaryTreeNode.getLeft().getRight().getLeft().getData());
-		
+
 		//节点为空  说明值没有插进去
 		binaryTreeNode.inOrder(binaryTreeNode);
 	}

From 027588236ce5b3c24f1e3ae09a825c4f7c158bba Mon Sep 17 00:00:00 2001
From: Harry <chenhaowei93@163.com>
Date: Sun, 26 Feb 2017 09:41:03 +0800
Subject: [PATCH 4/4] add ignore

---
 .gitignore                   | 19 +++++++++++++++++++
 group02/727171008/.gitignore | 36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 55 insertions(+)
 create mode 100644 group02/727171008/.gitignore

diff --git a/.gitignore b/.gitignore
index ec55baf87d..ecebe0642e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,3 +14,22 @@ hs_err_pid*
 #ide config
 .metadata
 .recommenders
+/bin/
+.idea/workspace.xml  
+.idea/dictionaries/myj.xml  
+.idea/  
+.DS_Store  
+*.classpath  
+*.project  
+.settings  
+.project  
+.target  
+.classpath  
+**/.settings  
+**/.classpath  
+**/.eclipse  
+**/target/  
+target/  
+bin/  
+.svn  
+*.iml  
\ No newline at end of file
diff --git a/group02/727171008/.gitignore b/group02/727171008/.gitignore
new file mode 100644
index 0000000000..806b57f381
--- /dev/null
+++ b/group02/727171008/.gitignore
@@ -0,0 +1,36 @@
+/bin/
+*.class
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.ear
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+#ide config
+.metadata
+.recommenders
+/bin/
+.idea/workspace.xml  
+.idea/dictionaries/myj.xml  
+.idea/  
+.DS_Store  
+*.classpath  
+*.project  
+.settings  
+.project  
+.target  
+.classpath  
+**/.settings  
+**/.classpath  
+**/.eclipse  
+**/target/  
+target/  
+bin/  
+.svn  
+*.iml  
\ No newline at end of file
