diff --git a/group14/857999411/FirstHomework/.classpath b/group14/857999411/FirstHomework/.classpath new file mode 100644 index 0000000000..373dce4005 --- /dev/null +++ b/group14/857999411/FirstHomework/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/group14/857999411/FirstHomework/.gitignore b/group14/857999411/FirstHomework/.gitignore new file mode 100644 index 0000000000..ae3c172604 --- /dev/null +++ b/group14/857999411/FirstHomework/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/group14/857999411/FirstHomework/.project b/group14/857999411/FirstHomework/.project new file mode 100644 index 0000000000..e93e0072c0 --- /dev/null +++ b/group14/857999411/FirstHomework/.project @@ -0,0 +1,17 @@ + + + FirstHomework + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/group14/857999411/FirstHomework/.settings/org.eclipse.jdt.core.prefs b/group14/857999411/FirstHomework/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..3a21537071 --- /dev/null +++ b/group14/857999411/FirstHomework/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/group14/857999411/FirstHomework/src/com/coding/basic/MyArrayList.java b/group14/857999411/FirstHomework/src/com/coding/basic/MyArrayList.java new file mode 100644 index 0000000000..6e75248b73 --- /dev/null +++ b/group14/857999411/FirstHomework/src/com/coding/basic/MyArrayList.java @@ -0,0 +1,73 @@ +package com.coding.basic; + +import java.util.*; + +public class MyArrayList implements MyList{ + //定义Object类型数组 + //定义数组元素个数 + private int size=0; + private Object [] elementData =new Object[10]; + + public void add(Object o) { + ensureCapacity(size+1); + elementData[size] = o; + size++; + } + + //添加指定位置的元 + public void add (int index,Object element){ + if(index > size || index < 0) + throw new IndexOutOfBoundsException("数组角标越界"); + ensureCapacity(size+1); + //添加指定位置元素 + //将该位置后的有元素右 + System.arraycopy(elementData,index,elementData,index+1,size-index); + elementData[index] =element; + size++; + } + + //可调整数组的容量 + public void ensureCapacity (int mincapacity){ + int oldlen =elementData.length; + if(mincapacity > oldlen){ + int newlen =(oldlen * 3)/2 + 1; + if(mincapacity > newlen) + newlen =mincapacity; + elementData =Arrays.copyOf(elementData,newlen); + } + } + + + //获取指定位置的元 + public Object get(int index){ + if(index < 0 || index >size-1){ + throw new IndexOutOfBoundsException("数组角标越界"); + } + return elementData[index]; + } + + public Object remove(int index){ + if(index >=size || index < 0){ + throw new IndexOutOfBoundsException("数组角标越界"); + } + Object oldelement =elementData[index]; + int numMoved = size-index-1; + if(numMoved > 0){ + System.arraycopy(elementData,index+1,elementData,index,numMoved); + } + size--; + return oldelement; + } + + public void clear(){ + elementData = null; + } + + public boolean isEmpty (){ + return size == 0; + } + + public int size (){ + return size; + } +} diff --git a/group14/857999411/FirstHomework/src/com/coding/basic/MyLinkedList.java b/group14/857999411/FirstHomework/src/com/coding/basic/MyLinkedList.java new file mode 100644 index 0000000000..221a8c9092 --- /dev/null +++ b/group14/857999411/FirstHomework/src/com/coding/basic/MyLinkedList.java @@ -0,0 +1,138 @@ +package com.coding.basic; + +import java.util.*; + +public class MyLinkedList implements MyList{ + //用内部类定义链表中的节点 + private class Node{ + //节点中包含数据和引用 + Object data; + Node next; + + public Node (){ + + } + + //每个节点包含数据和引 + public Node (Object data,Node next){ + this.data =data; + this.next =next; + } + } + //定义头节点和尾节 + public Node head; + public Node tail; + public int size; + + //无参数构造函数创建空链表 + public MyLinkedList(){ + head =null; + tail =null; + } + + //链表中传入元 + public MyLinkedList(Object element){ + head.data =element; + head.next =tail; + size++; + } + + public void add(Object o){ + addLast(o); + } + public void addFirst(Object element) { + + head =new Node(element,head); + if(tail == null){ + tail=head; + } + size++; + } + + public void addLast(Object element) { + if(head == null) { + head =new Node (element,null); + tail =head; + }else{ + Node newNode =new Node(element,null); + tail.next =newNode; + tail=newNode; + } + size++; + + } + + public void add(int index,Object element){ + + if(index < 0 || index > size) { + throw new IndexOutOfBoundsException("索引越界"); + } + if(index == 0) { + head =new Node(element,head); + } + Node frontNode =getNode(index-1); + frontNode.next =new Node(element,frontNode.next); + size++; + } + public Node getNode(int index) + { + if(index < 0 || index > size-1) { + + throw new IndexOutOfBoundsException("索引越界"); + } + Node current=head; + for(int i=0;i < size; i++,current =current.next) { + if(i == index) { + return current; + } + } + return null; + } + + public Object get(int index){ + return getNode(index).data; + } + + public Object remove(int index){ + if(index < 0 || index > size-1) { + throw new IndexOutOfBoundsException("索引越界"); + } + Node delNode =null; + if(index == 0) { + delNode =head; + head =head.next; + }else{ + Node frontNode =getNode(index-1); + delNode =frontNode.next; + frontNode.next =delNode.next; + delNode.next =null; + } + size--; + return delNode.data; + } + + public Object removeFirst(){ + if(head == null || head.next == null) + throw new NoSuchElementException(); + Node oldhead =head; + head =head.next; + oldhead.next =null; + size--; + return oldhead.data; + + } + + public Object removeLast(){ + return remove(size - 1); + + } + + + public int size() { + return size; + } + + +} + + diff --git a/group14/857999411/FirstHomework/src/com/coding/basic/MyList.java b/group14/857999411/FirstHomework/src/com/coding/basic/MyList.java new file mode 100644 index 0000000000..03fffb96c3 --- /dev/null +++ b/group14/857999411/FirstHomework/src/com/coding/basic/MyList.java @@ -0,0 +1,10 @@ +package com.coding.basic; + +public interface MyList { + + public void add(Object o); + public void add(int index,Object o); + public Object get(int index); + public Object remove(int index); + public int size(); +} diff --git a/group14/857999411/FirstHomework/src/com/coding/basic/MyQueue.java b/group14/857999411/FirstHomework/src/com/coding/basic/MyQueue.java new file mode 100644 index 0000000000..3f397f69ec --- /dev/null +++ b/group14/857999411/FirstHomework/src/com/coding/basic/MyQueue.java @@ -0,0 +1,23 @@ +package com.coding.basic; + +public class MyQueue { + + MyLinkedList link =new MyLinkedList(); + + //入队 + public void enQueue(Object o){ + link.addLast(o); + } + //出队 + public Object deQueue(){ + return link.removeFirst(); + } + //判断是否为空 + public boolean isEmpty(){ + return link.size == 0; + } + //获取长度 + public int size(){ + return link.size; + } +} diff --git a/group14/857999411/FirstHomework/src/com/coding/basic/MyStack.java b/group14/857999411/FirstHomework/src/com/coding/basic/MyStack.java new file mode 100644 index 0000000000..c0d6395726 --- /dev/null +++ b/group14/857999411/FirstHomework/src/com/coding/basic/MyStack.java @@ -0,0 +1,44 @@ +package com.coding.basic; + +import java.util.*; + +public class MyStack { + + + MyArrayList elementData=new MyArrayList(); + + //入栈 + public void push(Object o){ + elementData.add(o); + } + + //出栈 + public Object pop(){ + + Object element =elementData.get(elementData.size() - 1); + elementData.remove(elementData.size()-1); + return element; + } + + //获取栈顶元素 + public Object peek(){ + int len =elementData.size(); + if(len == 0) + throw new EmptyStackException(); + Object element =elementData.get(len - 1); + return element; + } + + public int size(){ + return elementData.size(); + } + + public boolean isEmpty(){ + return elementData.size() == 0; + } + + public boolean empty(){ + return elementData.isEmpty(); + } + +} diff --git a/group14/857999411/FirstHomework/src/com/coding/test/MyArrayListTest.java b/group14/857999411/FirstHomework/src/com/coding/test/MyArrayListTest.java new file mode 100644 index 0000000000..a489b51623 --- /dev/null +++ b/group14/857999411/FirstHomework/src/com/coding/test/MyArrayListTest.java @@ -0,0 +1,34 @@ +package com.coding.test; + +import static org.junit.Assert.*; + +import org.junit.Test; + +import com.coding.basic.MyArrayList; + +public class MyArrayListTest { + + @Test + public void test() { + MyArrayList sa =new MyArrayList(); + sa.add(0,0); + sa.add(1,1); + sa.add(2,2); + sa.add(3,3); + + //System.out.println(sa.get(1)); + + for(int i=0; i