From 4ac3afd81692972aeb5ca5f6450a55bf38c8623c Mon Sep 17 00:00:00 2001 From: tengjj Date: Mon, 27 Feb 2017 01:06:21 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E5=91=A8=E5=A4=A7=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RemoteSystemsTempFiles/.project | 12 ++ group01/1328404806/dataStructure/.classpath | 27 +++ group01/1328404806/dataStructure/.gitignore | 1 + group01/1328404806/dataStructure/.project | 23 ++ .../org.eclipse.core.resources.prefs | 4 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + group01/1328404806/dataStructure/pom.xml | 25 +++ .../main/java/ListService/KILinkedList.java | 10 + .../src/main/java/ListService/KIList.java | 28 +++ .../main/java/ListService/KIQueueList.java | 11 + .../main/java/ListService/KIStackList.java | 9 + .../main/java/ListServiceImpl/KArrayList.java | 192 +++++++++++++++++ .../java/ListServiceImpl/KLinkedList.java | 201 ++++++++++++++++++ .../main/java/ListServiceImpl/KQueueList.java | 97 +++++++++ .../main/java/ListServiceImpl/KStackList.java | 48 +++++ .../increaseLearning/dataStructure/App.java | 13 ++ .../dataStructure/AppTest.java | 38 ++++ .../dataStructure/arrayListTest.java | 36 ++++ .../dataStructure/linkedListTest.java | 21 ++ .../dataStructure/queueListTest.java | 42 ++++ .../dataStructure/stackListTest.java | 26 +++ 22 files changed, 873 insertions(+) create mode 100644 group01/1328404806/RemoteSystemsTempFiles/.project create mode 100644 group01/1328404806/dataStructure/.classpath create mode 100644 group01/1328404806/dataStructure/.gitignore create mode 100644 group01/1328404806/dataStructure/.project create mode 100644 group01/1328404806/dataStructure/.settings/org.eclipse.core.resources.prefs create mode 100644 group01/1328404806/dataStructure/.settings/org.eclipse.jdt.core.prefs create mode 100644 group01/1328404806/dataStructure/.settings/org.eclipse.m2e.core.prefs create mode 100644 group01/1328404806/dataStructure/pom.xml create mode 100644 group01/1328404806/dataStructure/src/main/java/ListService/KILinkedList.java create mode 100644 group01/1328404806/dataStructure/src/main/java/ListService/KIList.java create mode 100644 group01/1328404806/dataStructure/src/main/java/ListService/KIQueueList.java create mode 100644 group01/1328404806/dataStructure/src/main/java/ListService/KIStackList.java create mode 100644 group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KArrayList.java create mode 100644 group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KLinkedList.java create mode 100644 group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KQueueList.java create mode 100644 group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KStackList.java create mode 100644 group01/1328404806/dataStructure/src/main/java/increaseLearning/dataStructure/App.java create mode 100644 group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/AppTest.java create mode 100644 group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/arrayListTest.java create mode 100644 group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/linkedListTest.java create mode 100644 group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/queueListTest.java create mode 100644 group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/stackListTest.java diff --git a/group01/1328404806/RemoteSystemsTempFiles/.project b/group01/1328404806/RemoteSystemsTempFiles/.project new file mode 100644 index 0000000000..7675629320 --- /dev/null +++ b/group01/1328404806/RemoteSystemsTempFiles/.project @@ -0,0 +1,12 @@ + + + RemoteSystemsTempFiles + + + + + + + org.eclipse.rse.ui.remoteSystemsTempNature + + diff --git a/group01/1328404806/dataStructure/.classpath b/group01/1328404806/dataStructure/.classpath new file mode 100644 index 0000000000..7faf63dc05 --- /dev/null +++ b/group01/1328404806/dataStructure/.classpath @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/group01/1328404806/dataStructure/.gitignore b/group01/1328404806/dataStructure/.gitignore new file mode 100644 index 0000000000..b83d22266a --- /dev/null +++ b/group01/1328404806/dataStructure/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/group01/1328404806/dataStructure/.project b/group01/1328404806/dataStructure/.project new file mode 100644 index 0000000000..86bf42de91 --- /dev/null +++ b/group01/1328404806/dataStructure/.project @@ -0,0 +1,23 @@ + + + dataStructure + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/group01/1328404806/dataStructure/.settings/org.eclipse.core.resources.prefs b/group01/1328404806/dataStructure/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..4c28b1a898 --- /dev/null +++ b/group01/1328404806/dataStructure/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/test/java=UTF-8 +encoding/=UTF-8 diff --git a/group01/1328404806/dataStructure/.settings/org.eclipse.jdt.core.prefs b/group01/1328404806/dataStructure/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..8626026241 --- /dev/null +++ b/group01/1328404806/dataStructure/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/group01/1328404806/dataStructure/.settings/org.eclipse.m2e.core.prefs b/group01/1328404806/dataStructure/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000..14b697b7bb --- /dev/null +++ b/group01/1328404806/dataStructure/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/group01/1328404806/dataStructure/pom.xml b/group01/1328404806/dataStructure/pom.xml new file mode 100644 index 0000000000..0b5e3a1ca3 --- /dev/null +++ b/group01/1328404806/dataStructure/pom.xml @@ -0,0 +1,25 @@ + + 4.0.0 + + increaseLearning + dataStructure + 0.0.1-SNAPSHOT + jar + + dataStructure + http://maven.apache.org + + + UTF-8 + + + + + junit + junit + 3.8.1 + test + + + diff --git a/group01/1328404806/dataStructure/src/main/java/ListService/KILinkedList.java b/group01/1328404806/dataStructure/src/main/java/ListService/KILinkedList.java new file mode 100644 index 0000000000..8f0307f340 --- /dev/null +++ b/group01/1328404806/dataStructure/src/main/java/ListService/KILinkedList.java @@ -0,0 +1,10 @@ +package ListService; + +//集合接口 +public interface KILinkedList { + + public void add(T t, int pos); + + public T remove(int pos); + +} diff --git a/group01/1328404806/dataStructure/src/main/java/ListService/KIList.java b/group01/1328404806/dataStructure/src/main/java/ListService/KIList.java new file mode 100644 index 0000000000..b0851d30b0 --- /dev/null +++ b/group01/1328404806/dataStructure/src/main/java/ListService/KIList.java @@ -0,0 +1,28 @@ +package ListService; + +//集合接口 +public interface KIList { + + public void add(T item); + + public void add(int index, T item); + + public void set(int index, T item); + + public void remove(int index); + + public void remove(T item); + + public void clear(); + + public boolean contains(T item); + + public boolean isEmpty(); + + public T get(int index); + + public int indexOf(T item); + + public int size(); + +} diff --git a/group01/1328404806/dataStructure/src/main/java/ListService/KIQueueList.java b/group01/1328404806/dataStructure/src/main/java/ListService/KIQueueList.java new file mode 100644 index 0000000000..b02c0e86a5 --- /dev/null +++ b/group01/1328404806/dataStructure/src/main/java/ListService/KIQueueList.java @@ -0,0 +1,11 @@ +package ListService; + +//集合接口 +public interface KIQueueList { + public T add(T ele); + + public T remove(); + + public Object[] getData(); + +} diff --git a/group01/1328404806/dataStructure/src/main/java/ListService/KIStackList.java b/group01/1328404806/dataStructure/src/main/java/ListService/KIStackList.java new file mode 100644 index 0000000000..8a1f031976 --- /dev/null +++ b/group01/1328404806/dataStructure/src/main/java/ListService/KIStackList.java @@ -0,0 +1,9 @@ +package ListService; + +//集合接口 +public interface KIStackList { + public void push(T ele); + + public void pop(); + +} diff --git a/group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KArrayList.java b/group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KArrayList.java new file mode 100644 index 0000000000..d85a8957cf --- /dev/null +++ b/group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KArrayList.java @@ -0,0 +1,192 @@ +package ListServiceImpl; + +import ListService.KIList; + +public class KArrayList implements KIList { + + /** 初始化的容量的大小 */ + private final static int INIT_CAPACITY = 12; + private Object[] mList = null; + + /** 当前的容量 */ + private int mCurrentCapacity = 0; + /** 容器中元素的个数 */ + private int mSize = 0; + + public KArrayList() { + mList = new Object[INIT_CAPACITY]; + mCurrentCapacity = INIT_CAPACITY; + } + + /** + * 插入一个元素到链表尾部 + * + * @param item + */ + public void add(T item) { + if (mSize == mCurrentCapacity) { + expansion(); + } + mList[mSize] = item; + mSize++; + + } + + /** + * 插入一个元素到指定位置,从插入位置及其后面的元素往后移动一个位置 + * + * @param index + * 要插入的位置 + * @param item + */ + public void add(int index, T item) { + if (index < 0 || index >= mSize) { // 不允许index小于0,或者index >= 数组当前大小 + throw new IndexOutOfBoundsException(); + } + if (mSize == mCurrentCapacity) { + expansion(); + } + Object[] newList = new Object[mCurrentCapacity]; + System.arraycopy(mList, 0, newList, 0, index); + System.arraycopy(mList, index, newList, index + 1, mSize - index); + newList[index] = item; + mList = newList; + mSize++; + + } + + /** + * 更新指定位置的元素 + * + * @param index + * @param item + */ + public void set(int index, T item) { + if (index < 0 || index >= mSize) { + throw new IndexOutOfBoundsException(); + } + mList[index] = item; + + } + + /** + * 移除指定位置的元素,后面的元素向前移动一位 + * + * @param index + */ + public void remove(int index) { + if (index < 0 || index >= mSize) { + throw new IndexOutOfBoundsException(); + } + Object[] newList = new Object[mCurrentCapacity]; + System.arraycopy(mList, 0, newList, 0, index); + System.arraycopy(mList, index + 1, newList, index, mSize - index); + mList = newList; + mSize--; + + } + + /** + * 移除链表中特定的元素。(如果item在链表中有多个,只移除第一个) + * + * @param item + */ + public void remove(T item) { + for (int i = 0; i < mSize; i++) { + if (mList[i].equals(item)) { + remove(i); + break; + } + } + + } + + /** + * 将链表清空,capacity不变 + */ + public void clear() { + mList = new Object[mCurrentCapacity]; + mSize = 0; + + } + + /** + * 判断是否包含某个元素 + * + * @param item + * @return true表示有这个元素,false表示没有这个元素 + */ + public boolean contains(T item) { + for (int i = 0; i < mSize; i++) { + if (mList[i].equals(item)) { + return true; + } + } + return false; + } + + /** + * 判断链表是否为空 + * + * @return boolean + */ + public boolean isEmpty() { + return (mSize == 0) ? true : false; + } + + /** + * 获取指定位置的元素 + * + * @param index + * @return + */ + @SuppressWarnings("unchecked") + public T get(int index) { + if (index < 0 || index >= mSize) { + throw new IndexOutOfBoundsException(); + } + return (T) mList[index]; + } + + /** + * 获取特定元素所在的位置。 如果该链表中存在多个相同的元素,只返回第一个的位置,如果找不到,则返回-1。 + * + * @param item + * @return int 如果没找到,返回-1 + */ + public int indexOf(T item) { + for (int i = 0; i < mSize; i++) { + if (mList[i].equals(item)) { + return i; + } + } + return -1; + } + + /** + * 获取当前链表的长度 + * + * @return int + */ + public int size() { + return mSize; + } + + /** + * 扩容,当 mSize == mCurrentCapacity 时调用 + */ + private void expansion() { + Object[] oldList = mList; + Object[] newList = new Object[getNewCapacity()]; + System.arraycopy(oldList, 0, newList, 0, oldList.length); + mList = newList; + } + + /** + * 获取新的容量大小 当满的时候每次增加当前容量的50% + */ + private int getNewCapacity() { + return mCurrentCapacity = mCurrentCapacity + (mCurrentCapacity >> 1); + } + +} diff --git a/group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KLinkedList.java b/group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KLinkedList.java new file mode 100644 index 0000000000..6afb12befc --- /dev/null +++ b/group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KLinkedList.java @@ -0,0 +1,201 @@ +package ListServiceImpl; + +import java.util.Iterator; + +import ListService.KILinkedList; + +public class KLinkedList implements Iterable, KILinkedList { + + // 记录链表的长度 + private int mSize = 0; + // private int mActionCount = 0; + // 开始和结束节点 + private Node mBeginNode, mLastNode; + + public KLinkedList() { + // TODO Auto-generated constructor stub + init(); + } + + /** + * 初始化一个只有开始节点和结束节点的空链表 + */ + private void init() { + // 将首位节点链接起来 + mBeginNode = new Node(null, null, null); + mLastNode = new Node(null, mBeginNode, null); + mBeginNode.nextNode = mLastNode; + mSize = 0; + // mActionCount++; + } + + public int size() { + return mSize; + } + + public boolean isEmpty() { + return mSize == 0 ? true : false; + } + + /** + * 在链表的pos位置之前放置t_node这个节点 + * + * @param t_node + * 需要放置的节点 + * @param pos + * 放置节点在pos之前 + */ + private void add(Node newNode, int pos) { + // 抛出不合法的位置 + if (pos < 0 || pos > mSize) { + throw new IndexOutOfBoundsException(); + } + + // 链接新节点 + newNode.nextNode = getNode(pos); + getNode(pos - 1).nextNode = newNode; + getNode(pos).preNode = newNode; + // mActionCount++; + mSize++; + + } + + /** + * t 供外部调用,直接在链表的末尾添加,即在mLastNode节点之前 + * + * @param + */ + public void add(T t) { + add(new Node(t, null, null), mSize); + } + + /** + * 往链表pos位置之前添加数据t + * + * @param t + * 添加的数据 + * @param pos + * 添加在pos位置之前 + */ + public void add(T t, int pos) { + add(new Node(t, null, null), pos); + } + + /** + * + * @param pos + * 链表中的某个位置 + * @return 翻去pos位置的节点 (此处的pos的范围是[-1,mSize],此方法是私有方法,外部访问不了,只共此类中呢个访问) + */ + private Node getNode(int pos) { + Node node; + int currentPos; + if (pos == -1) { + // -1的位置是开始节点 + return mBeginNode; + } else if (pos == mSize) { + // mSize的位置是结束的节点 + return mLastNode; + } + // 因为这是双向节点,所以判断一下能提高搜索效率 + if (pos < mSize / 2) { + currentPos = 0; + node = mBeginNode.nextNode; + while (currentPos < pos) { + node = node.nextNode; + currentPos++; + } + } else { + node = mLastNode.preNode; + currentPos = mSize - 1; + while (currentPos > pos) { + node = node.preNode; + currentPos--; + } + } + return node; + } + + public T get(int pos) { + return getNode(pos).t; + } + + public void set(T t, int pos) { + if (pos < 0 || pos >= mSize) { + throw new IndexOutOfBoundsException(); + } + getNode(pos).t = t; + } + + /** + * 删除特定位置的节点 + * + * @param t_node + * 需要删除节点的位置 + * @return + */ + private T remove(Node t_node) { + + t_node.preNode.nextNode = t_node.nextNode; + t_node.nextNode.preNode = t_node.preNode; + // 最好在此处给其设置为空,不要其链接到其他节点,因为已经被销毁,不再持有其他的节点的引用 + t_node.nextNode = null; + t_node.preNode = null; + mSize--; + // mActionCount++; + return t_node.t; + } + + public T remove(int pos) { + if (pos < 0 || pos >= mSize) { + throw new IndexOutOfBoundsException(); + } + Node tempNode = getNode(pos); + remove(tempNode); + return tempNode.t; + } + + public Iterator iterator() { + + return new MyLinkedListIterator(); + } + + private class MyLinkedListIterator implements Iterator { + + private int currentPos = 0; + + public boolean hasNext() { + // TODO Auto-generated method stub + if (currentPos < mSize) { + return true; + } + return false; + } + + public T next() { + // TODO Auto-generated method stub + return (T) getNode(currentPos++).t; + } + + public void remove() { + // TODO Auto-generated method stub + KLinkedList.this.remove(getNode(--currentPos)); + ; + } + + } + + // 静态内部类,定义的节点,双向链表,需要一个指向前面一项的引用域和一个指向后面一项的引用域,方便查找 + private static class Node { + public T t; + public Node preNode; + public Node nextNode; + + public Node(T t, Node preNode, Node nextNode) { + this.preNode = preNode; + this.nextNode = nextNode; + this.t = t; + } + } + +} diff --git a/group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KQueueList.java b/group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KQueueList.java new file mode 100644 index 0000000000..7ea8643c43 --- /dev/null +++ b/group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KQueueList.java @@ -0,0 +1,97 @@ +package ListServiceImpl; + +import java.util.Arrays; +import java.util.Collection; + +import ListService.KIQueueList; + +public class KQueueList implements KIQueueList{ + + /** 初始容量 */ + public static final int DEFAULT_SIZE = 10; + /** 容量不足时翻倍数 */ + public static final float DEFAULT_INCREMENT = 1.5f; + /** 数据 */ + private Object[] elementData; + /** 元素个数 */ + private int elementCount; + /** 数组的头部,即 下次删除数据的 index */ + private int head; + /** 数组的尾部,即 下次插入数据的 index */ + private int tail; + + public KQueueList() { + this(DEFAULT_SIZE); + } + + public KQueueList(int size) { + this.elementData = new Object[size]; + this.elementCount = 0; + this.head = 0; + this.tail = 0; + } + + public KQueueList(Object[] data) { + this.elementData = data; + this.elementCount = data.length; + this.head = 0; + this.tail = 0; + } + + public KQueueList(Collection c) { + this(c.toArray()); + } + + /** + * 添加数据 到尾部 + * + * @param ele + * @return + */ + public T add(T ele) { + if (tail >= elementData.length) { + adjustData(); + } + elementData[tail] = ele; + elementCount++; + tail++; + return ele; + }; + + /** + * 删除数据 从头部 + * + * @return + */ + @SuppressWarnings("unchecked") + public T remove() { + T e = (T) elementData[head]; + elementData[head] = null; + elementCount--; + head++; + return e; + }; + + /** + * 获得当前的数据 + * + * @return + */ + public Object[] getData() { + return Arrays.copyOfRange(this.elementData, this.head, this.tail); + } + + public void adjustData() { + if (tail >= elementData.length) { // tail 处空间不足时调用 + // head 的空位去掉 + int newSize = (elementData.length == elementCount) ? (int) Math.ceil(elementCount * DEFAULT_INCREMENT) + : elementData.length; + elementData = Arrays.copyOfRange(elementData, head, elementData.length); + // 调整空间 + elementData = Arrays.copyOf(elementData, newSize); + tail = elementCount; + head = 0; + } + } + +} diff --git a/group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KStackList.java b/group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KStackList.java new file mode 100644 index 0000000000..e2b9ee1186 --- /dev/null +++ b/group01/1328404806/dataStructure/src/main/java/ListServiceImpl/KStackList.java @@ -0,0 +1,48 @@ +package ListServiceImpl; + +import java.util.Arrays; + +import ListService.KIStackList; + +public class KStackList implements KIStackList{ + Object[] data; + private int capacity; + private int size; + + public KStackList() + { + capacity=16; + size=0; + data=new Object[capacity]; + } + + public void ensureCapacity() { + capacity = capacity * 2; + data = Arrays.copyOf(data, capacity); + } + + //压入栈底 + public void push(T ele) { + if (size < capacity) { + data[size++] = ele; + } else { + ensureCapacity(); + data[size++] = ele; + } + } + + //弹出 + public void pop() { + if (size > 0) { + System.out.println(data[size - 1]); + data[--size] = null; + } else { + System.out.println("Empty stack!"); + } + } + + boolean isEmpty() { + return size == 0; + } + +} diff --git a/group01/1328404806/dataStructure/src/main/java/increaseLearning/dataStructure/App.java b/group01/1328404806/dataStructure/src/main/java/increaseLearning/dataStructure/App.java new file mode 100644 index 0000000000..018ba70bdb --- /dev/null +++ b/group01/1328404806/dataStructure/src/main/java/increaseLearning/dataStructure/App.java @@ -0,0 +1,13 @@ +package increaseLearning.dataStructure; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/AppTest.java b/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/AppTest.java new file mode 100644 index 0000000000..4fffcb78ed --- /dev/null +++ b/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/AppTest.java @@ -0,0 +1,38 @@ +package increaseLearning.dataStructure; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/arrayListTest.java b/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/arrayListTest.java new file mode 100644 index 0000000000..3815775989 --- /dev/null +++ b/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/arrayListTest.java @@ -0,0 +1,36 @@ +package increaseLearning.dataStructure; + + +import org.junit.Test; + +import ListServiceImpl.KArrayList; +import junit.framework.TestCase; + +public class arrayListTest extends TestCase { + @Test + public void testArrayList() { + + KArrayList arr = new KArrayList(); + + for (int i = 1; i <= 50; i++) { + arr.add(i); + } + + arr.add(10, 99); + arr.add(0, 99); + + System.out.println(arr.get(51)); + System.out.println(arr.get(11)); + + // arr.clear(); + + // System.out.println(arr.contains(99)); + // System.out.println(arr.indexOf(59)); + + arr.remove(11); + + arr = null; + + } + +} diff --git a/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/linkedListTest.java b/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/linkedListTest.java new file mode 100644 index 0000000000..6b42a261fa --- /dev/null +++ b/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/linkedListTest.java @@ -0,0 +1,21 @@ +package increaseLearning.dataStructure; + +import org.junit.Test; + +import ListServiceImpl.KLinkedList; +import junit.framework.TestCase; + +public class linkedListTest extends TestCase{ + @Test + public void testLinkedList(){ + KLinkedList linkList=new KLinkedList(); + + + linkList.add(3, 0); + + System.out.println(linkList.get(0)); +// System.out.println("成功!!!"); + + } + +} diff --git a/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/queueListTest.java b/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/queueListTest.java new file mode 100644 index 0000000000..af4f952f6c --- /dev/null +++ b/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/queueListTest.java @@ -0,0 +1,42 @@ +package increaseLearning.dataStructure; + +import org.junit.Assert; +import org.junit.Test; + +import ListServiceImpl.KQueueList; +import junit.framework.TestCase; + +public class queueListTest extends TestCase { + @Test + public void testQueueList() { + KQueueList queueOne = new KQueueList(); + // 第1次 加入个数 + int addCountOne = 30; + // 第1次 删除个数 + int removeCountOne = 20; + // 第2次 加入个数 + int addCountTwo = 10; + + for (int i = 0; i < addCountOne; i++) { + queueOne.add(i); + } + Object[] data = queueOne.getData(); + for (int i = 0; i < data.length; i++) { + Assert.assertTrue((Integer) data[i] == i); + } + + for (int i = 0; i < removeCountOne; i++) { + Assert.assertTrue(queueOne.remove() == i); + } + + for (int i = 0; i < addCountTwo; i++) { + queueOne.add(i * 10); + } + Object[] data2 = queueOne.getData(); + int baseCount = addCountOne - removeCountOne; + for (int i = 0; i < addCountTwo; i++) { + Assert.assertTrue((Integer) data2[baseCount + i] == i * 10); + } + } + +} diff --git a/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/stackListTest.java b/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/stackListTest.java new file mode 100644 index 0000000000..614f18cb8c --- /dev/null +++ b/group01/1328404806/dataStructure/src/test/java/increaseLearning/dataStructure/stackListTest.java @@ -0,0 +1,26 @@ +package increaseLearning.dataStructure; + +import org.junit.Test; + +import ListServiceImpl.KStackList; +import junit.framework.TestCase; + +public class stackListTest extends TestCase{ + @Test + public void testStackList(){ + KStackList fcStack=new KStackList(); + for(int i=0;i<10;i++) + { + fcStack.push(i); + System.out.println(fcStack); + } + + for(int i=0;i<10;i++) + { + fcStack.pop(); + System.out.println(fcStack); + } + fcStack.pop(); + } + +}