From 0ccb1bf6e33c7ba9f1d0e93e1272f1bec37c3206 Mon Sep 17 00:00:00 2001 From: rexwcl Date: Sun, 26 Feb 2017 16:46:54 +0800 Subject: [PATCH 1/2] 190530132 submit homework for 20170219 --- .../ArrayList.java" | 67 +++++++++ .../LinkedList.java" | 128 ++++++++++++++++++ .../Queue.java" | 25 ++++ .../Stack.java" | 33 +++++ ...7\347\253\240\351\223\276\346\216\245.txt" | 0 5 files changed, 253 insertions(+) create mode 100644 "group14/190530132/20170219\344\275\234\344\270\232/ArrayList.java" create mode 100644 "group14/190530132/20170219\344\275\234\344\270\232/LinkedList.java" create mode 100644 "group14/190530132/20170219\344\275\234\344\270\232/Queue.java" create mode 100644 "group14/190530132/20170219\344\275\234\344\270\232/Stack.java" create mode 100644 "group14/190530132/20170219\344\275\234\344\270\232/\346\226\207\347\253\240\351\223\276\346\216\245.txt" diff --git "a/group14/190530132/20170219\344\275\234\344\270\232/ArrayList.java" "b/group14/190530132/20170219\344\275\234\344\270\232/ArrayList.java" new file mode 100644 index 0000000000..079540bc4e --- /dev/null +++ "b/group14/190530132/20170219\344\275\234\344\270\232/ArrayList.java" @@ -0,0 +1,67 @@ +package com.coding.basic; + +public class ArrayList { + + private int size = 0; + + private Object[] elementData = new Object[100]; + + + //在ArrayList的尾部添加 + public void add(Object o){ + + size = elementData.length + 1; + Object[] tempData = new Object[size]; + System.arraycopy(elementData, 0, tempData,0, elementData.length); + elementData = tempData; + + elementData[size-1] = o; + + } + + //在ArrayList中的某一个元素后面添加, 这里的关键在于先移动末尾的元素 + public void add(int index, Object o){ + + size = elementData.length + 1; + Object[] tempData = new Object[size]; + System.arraycopy(elementData, 0, tempData,0, elementData.length); + elementData = tempData; + + for (int i=elementData.length-2; i>index; i--) { + elementData[i+1] = elementData[i]; + } + + elementData[index+1] = o; + + } + + //按下标来访问ArrayList中的元素 + public Object get(int index){ + return elementData[index]; + } + + //按下标来删除ArrayList中的元素 + public Object remove(int index){ + Object r = elementData[index]; + for (int i=index; i= size) { + throw new IndexOutOfBoundsException("Index:" + index + ",size:" + size); + } + + Node n = new Node(); + n.data = o; + Node m = get(index); + n.next = m.next; + m.next = n; + size = size + 1; + } + + public Node get(int index){ + //index越界检查 + if (index < 0 || index >= size) { + throw new IndexOutOfBoundsException("Index:" + index + ",size:" + size); + } + + Node n = head.next; + int count = 0; + while(count<=index){ + if(count==index){ + return n; + } + n = n.next; + count++; + } + + return null; + } + + public void remove(int index){ + if(index<0||index>=size) + throw new IndexOutOfBoundsException("Joy Index "+index+", Size: "+size); + + Node d = get(index); + Node pred = get(index-1); + pred.next = d.next; + size = size - 1; + } + + public int size(){ + return size; + } + + public void addFirst(Object o){ + Node n = new Node(); + n.data = o; + + //避免空链表 + if (head==null) head=new Node(); + + n.next = head.next; + head.next = n; + size = size + 1; + } + + public void addLast(Object o){ + Node n = new Node(); + n.data = o; + + //避免空链表 + if (head==null) head = new Node(); + + //从头部往后顺序查找,找到尾部就添加 + Node m = head; + while (m.next != null){ + m = m.next; + } + n.next = m.next; + m.next = n; + size = size + 1; + } + + public Object removeFirst(){ + if(head==null||head.next==null) + throw new NoSuchElementException(); + Node d = head.next; + head.next = d.next; + size = size - 1; + return d.data; + } + + public Object removeLast(){ + if(head==null||head.next==null) + throw new NoSuchElementException(); + + Node m = head; + Node n = head.next; + while(n.next != null){ + m = n; + n = n.next; + } + size = size - 1; + return m.data; + } + + //public Iterator iterator(){ + // return null; + //} + + private static class Node{ + Node next; + Object data; + } + +} diff --git "a/group14/190530132/20170219\344\275\234\344\270\232/Queue.java" "b/group14/190530132/20170219\344\275\234\344\270\232/Queue.java" new file mode 100644 index 0000000000..365b65aecb --- /dev/null +++ "b/group14/190530132/20170219\344\275\234\344\270\232/Queue.java" @@ -0,0 +1,25 @@ +package com.coding.basic; + +public class Queue { + + LinkedList l = new LinkedList(); + public void enQueue(Object o){ + l.addLast(o); + } + + public Object deQueue(){ + return l.removeFirst(); + } + + public boolean isEmpty(){ + if (l.size() == 0) + return true; + else + return false; + } + + public int size(){ + return l.size(); + } + +} diff --git "a/group14/190530132/20170219\344\275\234\344\270\232/Stack.java" "b/group14/190530132/20170219\344\275\234\344\270\232/Stack.java" new file mode 100644 index 0000000000..f73de31abc --- /dev/null +++ "b/group14/190530132/20170219\344\275\234\344\270\232/Stack.java" @@ -0,0 +1,33 @@ +package com.coding.basic; + +public class Stack { + + private ArrayList elementData = new ArrayList(); + + public void push(Object o){ + elementData.add(o); + } + + public Object pop(){ + int index = elementData.size() - 1; + Object o = elementData.remove(index); + return o; + } + + public Object peek(){ + int e = elementData.size() - 1; + return elementData.get(e); + } + + public boolean isEmpty(){ + if (elementData.size() == 0 ) + return true; + else + return false; + } + + public int size(){ + return elementData.size(); + } + +} diff --git "a/group14/190530132/20170219\344\275\234\344\270\232/\346\226\207\347\253\240\351\223\276\346\216\245.txt" "b/group14/190530132/20170219\344\275\234\344\270\232/\346\226\207\347\253\240\351\223\276\346\216\245.txt" new file mode 100644 index 0000000000..e69de29bb2 From 34039905e30e7dabe5de8fb11da0265332e0acf2 Mon Sep 17 00:00:00 2001 From: rexwcl Date: Sun, 26 Feb 2017 17:16:43 +0800 Subject: [PATCH 2/2] update the blog linK --- .../\346\226\207\347\253\240\351\223\276\346\216\245.txt" | 1 + 1 file changed, 1 insertion(+) diff --git "a/group14/190530132/20170219\344\275\234\344\270\232/\346\226\207\347\253\240\351\223\276\346\216\245.txt" "b/group14/190530132/20170219\344\275\234\344\270\232/\346\226\207\347\253\240\351\223\276\346\216\245.txt" index e69de29bb2..2c79e20a62 100644 --- "a/group14/190530132/20170219\344\275\234\344\270\232/\346\226\207\347\253\240\351\223\276\346\216\245.txt" +++ "b/group14/190530132/20170219\344\275\234\344\270\232/\346\226\207\347\253\240\351\223\276\346\216\245.txt" @@ -0,0 +1 @@ +http://rexwcl.blog.163.com/blog/static/270599039201712651450997/ \ No newline at end of file