From 276d8d1cdaed32fd561aba558a0296ee99c38ed6 Mon Sep 17 00:00:00 2001 From: lralin Date: Sun, 26 Feb 2017 23:36:04 +0800 Subject: [PATCH] the first homework --- .../src/com/coding/basic/ArrayList.java | 87 ++++++++++ .../src/com/coding/basic/BinaryTreeNode.java | 32 ++++ .../src/com/coding/basic/Iterator.java | 7 + .../src/com/coding/basic/LinkedList.java | 152 ++++++++++++++++++ .../20170226/src/com/coding/basic/List.java | 9 ++ .../20170226/src/com/coding/basic/Queue.java | 44 +++++ .../20170226/src/com/coding/basic/Stack.java | 23 +++ 7 files changed, 354 insertions(+) create mode 100644 group20/872045674/20170226/src/com/coding/basic/ArrayList.java create mode 100644 group20/872045674/20170226/src/com/coding/basic/BinaryTreeNode.java create mode 100644 group20/872045674/20170226/src/com/coding/basic/Iterator.java create mode 100644 group20/872045674/20170226/src/com/coding/basic/LinkedList.java create mode 100644 group20/872045674/20170226/src/com/coding/basic/List.java create mode 100644 group20/872045674/20170226/src/com/coding/basic/Queue.java create mode 100644 group20/872045674/20170226/src/com/coding/basic/Stack.java diff --git a/group20/872045674/20170226/src/com/coding/basic/ArrayList.java b/group20/872045674/20170226/src/com/coding/basic/ArrayList.java new file mode 100644 index 0000000000..8b495831fe --- /dev/null +++ b/group20/872045674/20170226/src/com/coding/basic/ArrayList.java @@ -0,0 +1,87 @@ +package com.coding.basic; + +import java.util.Arrays; + +public class ArrayList implements List { + + private int size = 0; + + private Object[] elementData = new Object[7]; + + public void add(Object o){ + if(size>elementData.length-1){ + ensureCapacity(size); + } + elementData[size++] = o; + } + + public void add(int index, Object o){ + System.out.println(elementData.length+" length"); + System.out.println(size+" size"); + size++; + if(index<0||index>size||index>Integer.MAX_VALUE){ + System.out.println("add 位置输入错误,请输入合理的位置"); + return; + } + if(size>elementData.length-1){ + ensureCapacity(size); + } + System.arraycopy(elementData,index,elementData,index+1,size-index-1); + elementData[index] = o; + } + + public Object get(int index){ + if(index<0||index>size-1){ + System.out.println("get 位置输入错误,请输入合理的位置"); + return null; + } + + return elementData[index]; + } + + public Object remove(int index){ + if(index<0||index>size-1){ + System.out.println("remove 位置输入错误,请输入合理的位置"); + return false; + } + System.arraycopy(elementData,index+1,elementData,index,size-index-1); + elementData[--size]=null; + return true; + } + + public int size(){ + return size; + } + + private void ensureCapacity(int nimCapacity){ + int oldCapacity = elementData.length; + int newCapacity = oldCapacity+(oldCapacity/2+1); + if(newCapacity < nimCapacity){ + newCapacity = nimCapacity; + } + if(newCapacity>Integer.MAX_VALUE){ + newCapacity = Integer.MAX_VALUE; + } + elementData = Arrays.copyOf(elementData,newCapacity); + } + + public static void main(String[] args) { + ArrayList list=new ArrayList(); + + list.add(1); + list.add(2); + list.add(3); + list.add(4); + list.add(2,10); + list.remove(3); + for(int i=0;i