From 5b64b8f299ad9e22d57d1e30b30d99634586eb3e Mon Sep 17 00:00:00 2001 From: northSmall <604322962@qq.com> Date: Sun, 26 Feb 2017 16:58:54 +0800 Subject: [PATCH 1/2] =?UTF-8?q?20170226=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 9 ++ ...4\347\233\230\346\214\207\344\273\244.txt" | 3 + .../main/java/com/coding/basic/ArrayList.java | 49 ++++++ .../java/com/coding/basic/BinaryTreeNode.java | 32 ++++ .../main/java/com/coding/basic/Iterator.java | 7 + .../java/com/coding/basic/LinkedList.java | 143 ++++++++++++++++++ .../src/main/java/com/coding/basic/List.java | 9 ++ .../src/main/java/com/coding/basic/Queue.java | 52 +++++++ .../src/main/java/com/coding/basic/Stack.java | 43 ++++++ 9 files changed, 347 insertions(+) create mode 100644 "group19/604322962/cpu\345\206\205\345\255\230\347\241\254\347\233\230\346\214\207\344\273\244.txt" create mode 100644 group19/604322962/learning2017/src/main/java/com/coding/basic/ArrayList.java create mode 100644 group19/604322962/learning2017/src/main/java/com/coding/basic/BinaryTreeNode.java create mode 100644 group19/604322962/learning2017/src/main/java/com/coding/basic/Iterator.java create mode 100644 group19/604322962/learning2017/src/main/java/com/coding/basic/LinkedList.java create mode 100644 group19/604322962/learning2017/src/main/java/com/coding/basic/List.java create mode 100644 group19/604322962/learning2017/src/main/java/com/coding/basic/Queue.java create mode 100644 group19/604322962/learning2017/src/main/java/com/coding/basic/Stack.java diff --git a/.gitignore b/.gitignore index fcfd185b8c..dd30d8e15f 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,12 @@ hs_err_pid* /.idea /**/target/**/* +*target +*.classpath +*.project +*.settings +*iml +.idea +*gen-* +rebel.xml + diff --git "a/group19/604322962/cpu\345\206\205\345\255\230\347\241\254\347\233\230\346\214\207\344\273\244.txt" "b/group19/604322962/cpu\345\206\205\345\255\230\347\241\254\347\233\230\346\214\207\344\273\244.txt" new file mode 100644 index 0000000000..f20b27f7b0 --- /dev/null +++ "b/group19/604322962/cpu\345\206\205\345\255\230\347\241\254\347\233\230\346\214\207\344\273\244.txt" @@ -0,0 +1,3 @@ + 指令就是计算机直接用来控制计算机运行的代码,我们编写的java代码,在实际运行时也会被计算机在底层转化为各式各样的指令。 + 而cpu就是负责读取并解释这些指令的设备,cpu主要由几大部分组长,包括运算器、控制器和寄存器,控制器负责把指令、数据读取寄存器,运算器负责运算寄存器中的数据。但由于内存容量有限,成本高,并且断电之后里面的一切数据都会丢失,导致内存并不能作为我们永久存储程序的地方,而硬盘的价格便宜、容量大、断电后仍能保存数据,就可以作为我们长期存储程序和其他数据的地方。当我们需要运行某一个程序的时候,就从硬盘中将对应的数据读取到内存中,然后CPU再从内存中读取执行。 + cpu如果直接读取硬盘数据,由于硬盘的速度比内存慢了太多,会导致计算机运算能力严重降低。 diff --git a/group19/604322962/learning2017/src/main/java/com/coding/basic/ArrayList.java b/group19/604322962/learning2017/src/main/java/com/coding/basic/ArrayList.java new file mode 100644 index 0000000000..802bca79df --- /dev/null +++ b/group19/604322962/learning2017/src/main/java/com/coding/basic/ArrayList.java @@ -0,0 +1,49 @@ +package main.java.com.coding.basic; + +import java.util.Arrays; + +public class ArrayList implements List { + + private int size = 0; + + private Object[] elementData = new Object[100]; + + private static final int GORW_CAPACITY = 10; + public void add(Object o){ + if (sizeelementData.length) + throw new IndexOutOfBoundsException(); + } + +} diff --git a/group19/604322962/learning2017/src/main/java/com/coding/basic/BinaryTreeNode.java b/group19/604322962/learning2017/src/main/java/com/coding/basic/BinaryTreeNode.java new file mode 100644 index 0000000000..2701270b5d --- /dev/null +++ b/group19/604322962/learning2017/src/main/java/com/coding/basic/BinaryTreeNode.java @@ -0,0 +1,32 @@ +package main.java.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/group19/604322962/learning2017/src/main/java/com/coding/basic/Iterator.java b/group19/604322962/learning2017/src/main/java/com/coding/basic/Iterator.java new file mode 100644 index 0000000000..86643482fb --- /dev/null +++ b/group19/604322962/learning2017/src/main/java/com/coding/basic/Iterator.java @@ -0,0 +1,7 @@ +package main.java.com.coding.basic; + +public interface Iterator { + public boolean hasNext(); + public Object next(); + +} diff --git a/group19/604322962/learning2017/src/main/java/com/coding/basic/LinkedList.java b/group19/604322962/learning2017/src/main/java/com/coding/basic/LinkedList.java new file mode 100644 index 0000000000..1d8b56ede4 --- /dev/null +++ b/group19/604322962/learning2017/src/main/java/com/coding/basic/LinkedList.java @@ -0,0 +1,143 @@ +package main.java.com.coding.basic; + +import java.util.NoSuchElementException; + +public class LinkedList implements List { + + private Node head; + private int size; + private Node tail; + public void add(Object obj){ + linkLast(obj); + } + + public void add(int index , Object obj){ + if (index<0 || index>size) + throw new IndexOutOfBoundsException(); + else { + if (index == size) + linkLast(obj); + else { + Node node = linkIndex(index);//获取指定index的Node + Node pred = node.prev; + Node newNode = new Node(node.prev,obj,node); + node.prev = newNode; + if (pred==null) + head = newNode; + else + node.prev.next = newNode;//原链表指定节点前一个的节点的next指向新节点 + size++; + } + } + } + public Object get(int index){ + return linkIndex(index); + } + public Object remove(int index){ + Node node = linkIndex(index);//获取指定index的Node + Node prev = node.prev; + Node next = node.next; + if (prev==null) { + //此时删除的节点为头节点 + head = next; + } else { + prev.next = next; + node.prev = null; + } + if (next==null) { + //此时删除节点为尾节点 + tail = prev; + } else { + next.prev = prev; + node.next = null; + } + node.data = null; + size--; + return node; + } + + public int size(){ + return size; + } + + public void addFirst(Object o){ + Node newNode = new Node(null,o, head); + if (head == null) { + head = newNode; + } else { + newNode.next = head; + } + size++; + } + public void addLast(Object o){ + Node newNode = new Node(head,o, null); + if (head == null) { + head = newNode; + } else { + newNode.next = head; + } + size++; + } + public Object removeFirst(){ + if (head == null) { + throw new NoSuchElementException(); + } else { + Node next = head.next; + Object obj = head.data; + head.next = null; + head.data = null; + head = next; + if (next == null) { + tail = null; + } else { + next.prev = null; + } + size--; + return obj; + } + } + public Object removeLast(){ + tail = tail.prev; + head.next = null; + head.data = null; + return tail; + } + public Iterator iterator(){ + return null; + } + + /** + * 尾部添加一个节点 + * @param obj + */ + private void linkLast(Object obj){ + Node newNode = new Node(tail,obj, null); + if (tail == null) { + head = newNode; + tail = newNode; + } else + tail.next = newNode; + size++; + } + /** + * 获取指定index索引的Node节点 + * @param index + * @return + */ + private Node linkIndex(int index){ + Node n = head; + for (int i=0;i Date: Sun, 26 Feb 2017 17:23:30 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9arraylist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/coding/basic/ArrayList.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/group19/604322962/learning2017/src/main/java/com/coding/basic/ArrayList.java b/group19/604322962/learning2017/src/main/java/com/coding/basic/ArrayList.java index 802bca79df..3f2fa618c5 100644 --- a/group19/604322962/learning2017/src/main/java/com/coding/basic/ArrayList.java +++ b/group19/604322962/learning2017/src/main/java/com/coding/basic/ArrayList.java @@ -30,7 +30,11 @@ public Object get(int index){ } public Object remove(int index){ - return null; + checkIndex(index); + Object obj = elementData[index]; + System.arraycopy(elementData, index+1, elementData, index, + size - index-1); + return obj; } public int size(){ @@ -45,5 +49,5 @@ private void checkIndex(int index){ if (index>elementData.length) throw new IndexOutOfBoundsException(); } - + }