From 1dbd5aee827accb108dc6fbe2d482a1da19b2875 Mon Sep 17 00:00:00 2001 From: Leon1900 Date: Sat, 25 Feb 2017 23:08:40 +0800 Subject: [PATCH] Task01 @Leon1900 --- .../515505513/RemoteSystemsTempFiles/.project | 12 +++ group05/515505513/Task01/.classpath | 6 ++ group05/515505513/Task01/.gitignore | 1 + group05/515505513/Task01/.project | 17 ++++ .../.settings/org.eclipse.jdt.core.prefs | 11 +++ .../src/com/coding/basic/ArrayList.java | 78 +++++++++++++++++++ .../src/com/coding/basic/BinaryTreeNode.java | 32 ++++++++ .../Task01/src/com/coding/basic/Iterator.java | 7 ++ .../src/com/coding/basic/LinkedList.java | 48 ++++++++++++ .../Task01/src/com/coding/basic/List.java | 9 +++ .../Task01/src/com/coding/basic/Queue.java | 49 ++++++++++++ .../Task01/src/com/coding/basic/Stack.java | 49 ++++++++++++ .../src/com/coding/basic/TestExample.java | 27 +++++++ 13 files changed, 346 insertions(+) create mode 100644 group05/515505513/RemoteSystemsTempFiles/.project create mode 100644 group05/515505513/Task01/.classpath create mode 100644 group05/515505513/Task01/.gitignore create mode 100644 group05/515505513/Task01/.project create mode 100644 group05/515505513/Task01/.settings/org.eclipse.jdt.core.prefs create mode 100644 group05/515505513/Task01/src/com/coding/basic/ArrayList.java create mode 100644 group05/515505513/Task01/src/com/coding/basic/BinaryTreeNode.java create mode 100644 group05/515505513/Task01/src/com/coding/basic/Iterator.java create mode 100644 group05/515505513/Task01/src/com/coding/basic/LinkedList.java create mode 100644 group05/515505513/Task01/src/com/coding/basic/List.java create mode 100644 group05/515505513/Task01/src/com/coding/basic/Queue.java create mode 100644 group05/515505513/Task01/src/com/coding/basic/Stack.java create mode 100644 group05/515505513/Task01/src/com/coding/basic/TestExample.java diff --git a/group05/515505513/RemoteSystemsTempFiles/.project b/group05/515505513/RemoteSystemsTempFiles/.project new file mode 100644 index 0000000000..5447a64fa9 --- /dev/null +++ b/group05/515505513/RemoteSystemsTempFiles/.project @@ -0,0 +1,12 @@ + + + RemoteSystemsTempFiles + + + + + + + org.eclipse.rse.ui.remoteSystemsTempNature + + diff --git a/group05/515505513/Task01/.classpath b/group05/515505513/Task01/.classpath new file mode 100644 index 0000000000..fceb4801b5 --- /dev/null +++ b/group05/515505513/Task01/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/group05/515505513/Task01/.gitignore b/group05/515505513/Task01/.gitignore new file mode 100644 index 0000000000..ae3c172604 --- /dev/null +++ b/group05/515505513/Task01/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/group05/515505513/Task01/.project b/group05/515505513/Task01/.project new file mode 100644 index 0000000000..cf494f7a91 --- /dev/null +++ b/group05/515505513/Task01/.project @@ -0,0 +1,17 @@ + + + Task01 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/group05/515505513/Task01/.settings/org.eclipse.jdt.core.prefs b/group05/515505513/Task01/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..3a21537071 --- /dev/null +++ b/group05/515505513/Task01/.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/group05/515505513/Task01/src/com/coding/basic/ArrayList.java b/group05/515505513/Task01/src/com/coding/basic/ArrayList.java new file mode 100644 index 0000000000..29fc9b98cb --- /dev/null +++ b/group05/515505513/Task01/src/com/coding/basic/ArrayList.java @@ -0,0 +1,78 @@ +package com.coding.basic; + +import java.util.NoSuchElementException; + +public class ArrayList implements List { + + + private int size = 0; + private static final int DEFAULT_SIZE = 100; + private Object[] elementData = new Object[DEFAULT_SIZE]; + + //添加元素 + public void add(Object o){ + add(size(),o); + } + + + public void add(int index, Object o){ + if(elementData.length==size()){ + ensureCapacity(size()*2 + 1); + } + for (int i = size; i > index; i--) + elementData[i]=elementData[i-1]; + elementData[index] = o; + size++; + } + //扩容 + public void ensureCapacity(int newCapacity){ + if(newCapacity < size){ + return; + } + Object[] oldElements = elementData; + elementData = new Object[newCapacity]; + for (int i = 0; i < size; i++) { + elementData[i] = oldElements[i]; + } + } + //返回固定下标的元素 + public Object get(int index){ + if(index<0 || index >=size){ + throw new ArrayIndexOutOfBoundsException("指定的index超过界限"); + } + return elementData[index]; + } + //删除指定位置的元素 + public Object remove(int index){ + Object removeElement = elementData[index]; + for (int i = index; i < size; i++) { + elementData[i] = elementData[i+1]; + } + size--; + return removeElement; + } + + public int size(){ + return size; + } + + public Iterator iterator(){ + return new ArrayListIterator(); + } + + private class ArrayListIterator implements Iterator{ + private int current = 0; + @Override + public boolean hasNext() { + return current < size; + } + @Override + public Object next() { + if(!hasNext()){ + throw new NoSuchElementException(); + } + return elementData[current+1]; + } + } + +} diff --git a/group05/515505513/Task01/src/com/coding/basic/BinaryTreeNode.java b/group05/515505513/Task01/src/com/coding/basic/BinaryTreeNode.java new file mode 100644 index 0000000000..d7ac820192 --- /dev/null +++ b/group05/515505513/Task01/src/com/coding/basic/BinaryTreeNode.java @@ -0,0 +1,32 @@ +package com.coding.basic; + +public class BinaryTreeNode { + + private Object data; + private BinaryTreeNode left; + private BinaryTreeNode right; + + public Object getData() { + return data; + } + public void setData(Object data) { + this.data = data; + } + public BinaryTreeNode getLeft() { + return left; + } + public void setLeft(BinaryTreeNode left) { + this.left = left; + } + public BinaryTreeNode getRight() { + return right; + } + public void setRight(BinaryTreeNode right) { + this.right = right; + } + + public BinaryTreeNode insert(Object o){ + return null; + } + +} diff --git a/group05/515505513/Task01/src/com/coding/basic/Iterator.java b/group05/515505513/Task01/src/com/coding/basic/Iterator.java new file mode 100644 index 0000000000..06ef6311b2 --- /dev/null +++ b/group05/515505513/Task01/src/com/coding/basic/Iterator.java @@ -0,0 +1,7 @@ +package com.coding.basic; + +public interface Iterator { + public boolean hasNext(); + public Object next(); + +} diff --git a/group05/515505513/Task01/src/com/coding/basic/LinkedList.java b/group05/515505513/Task01/src/com/coding/basic/LinkedList.java new file mode 100644 index 0000000000..ea3d6a07f3 --- /dev/null +++ b/group05/515505513/Task01/src/com/coding/basic/LinkedList.java @@ -0,0 +1,48 @@ +package com.coding.basic; + +public class LinkedList implements List { + + private Node head;//指针 + private Object element;//元素 + //添加一个元素 + public void add(Object o){ + + } + //在index处添加一个元素 + public void add(int index , Object o){ + + } + + public Object get(int index){ + return null; + } + //清除一个元素 + public Object remove(int index){ + return null; + } + + public int size(){ + return -1; + } + + public void addFirst(Object o){ + + } + public void addLast(Object o){ + + } + public Object removeFirst(){ + return null; + } + public Object removeLast(){ + return null; + } + public Iterator iterator(){ + return null; + } + + private static class Node{ + Object data;//元素 + Node next;//指针 + } +} diff --git a/group05/515505513/Task01/src/com/coding/basic/List.java b/group05/515505513/Task01/src/com/coding/basic/List.java new file mode 100644 index 0000000000..10d13b5832 --- /dev/null +++ b/group05/515505513/Task01/src/com/coding/basic/List.java @@ -0,0 +1,9 @@ +package com.coding.basic; + +public interface List { + public void add(Object o); + public void add(int index, Object o); + public Object get(int index); + public Object remove(int index); + public int size(); +} diff --git a/group05/515505513/Task01/src/com/coding/basic/Queue.java b/group05/515505513/Task01/src/com/coding/basic/Queue.java new file mode 100644 index 0000000000..fd316ac7bf --- /dev/null +++ b/group05/515505513/Task01/src/com/coding/basic/Queue.java @@ -0,0 +1,49 @@ +package com.coding.basic; + +public class Queue { + private int maxSize;//队列容量 + private Object[] queue;//队列 + private int head;//队列头,可以删除 + private int tail;//队列尾,可以插入 + + + public Queue() { + this(10); + } + + public Queue(int maxSize) { + if(maxSize >=0){ + this.maxSize = maxSize; + this.queue = new Object[maxSize]; + head = tail = 0; + }else { + throw new RuntimeException("初始化大小不能小于0"); + } + } + + public void enQueue(Object o){ + if(tail == maxSize){ + throw new RuntimeException("队列已满,无法插入新的元素!"); + }else { + queue[tail++] = o; + } + } + + public Object deQueue(){ + if(isEmpty()){ + throw new RuntimeException("空队列异常!"); + }else { + Object value = queue[head]; + queue[head++] = null; + return value; + } + } + //队列是否为空 + public boolean isEmpty(){ + return head==tail?true:false; + } + + public int size(){ + return tail-head; + } +} diff --git a/group05/515505513/Task01/src/com/coding/basic/Stack.java b/group05/515505513/Task01/src/com/coding/basic/Stack.java new file mode 100644 index 0000000000..a85cfed9d2 --- /dev/null +++ b/group05/515505513/Task01/src/com/coding/basic/Stack.java @@ -0,0 +1,49 @@ +package com.coding.basic; + +public class Stack { + private Object[] data; + private int capacity; + private int size; + public Stack(){ + capacity = 16; + size = 0; + data = new Object[capacity]; + } + public void push(Object o){ + if(size < capacity){ + data[size++] = o; + }else { + ensureCapacity(); + data[size++] = o; + } + } + + private void ensureCapacity() { + capacity = capacity*2; + } + public Object pop(){ + if(size > 0){ + System.out.println(data[size-1]); + //data[size--] = null; + }else { + System.out.println("Empty stack"); + } + size--; + return data[size]; + } + + public Object peek(){ + if(size>0){ + return data[size-1]; + }else { + return null; + } + } + public boolean isEmpty(){ + + return size==0; + } + public int size(){ + return size; + } +} diff --git a/group05/515505513/Task01/src/com/coding/basic/TestExample.java b/group05/515505513/Task01/src/com/coding/basic/TestExample.java new file mode 100644 index 0000000000..59bfa47a3c --- /dev/null +++ b/group05/515505513/Task01/src/com/coding/basic/TestExample.java @@ -0,0 +1,27 @@ +package com.coding.basic; + +public class TestExample { + + public static void main(String[] args) { + /*Stack mystack = new Stack(); + for (int i = 0; i < 10; i++) { + mystack.push(i); + } + for (int i = 0; i < 10; i++) { + mystack.pop(); + System.out.println("==="+mystack.peek()); + }*/ + + /*Test Queue + Queue myQqueue = new Queue(10); + for (int i = 0; i < 10; i++) { + myQqueue.enQueue(i); + } + for (int i = 0; i < 10; i++) { + System.out.println(myQqueue.deQueue()); + }*/ + + + } + +}