diff --git a/group01/1925347167/1925347167.md b/group01/1925347167/1925347167.md new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/group01/1925347167/1925347167.md @@ -0,0 +1 @@ + diff --git a/group01/1925347167/Week1 Basic Data Structure/ArrayList.java b/group01/1925347167/Week1 Basic Data Structure/ArrayList.java new file mode 100644 index 0000000000..2797e0b129 --- /dev/null +++ b/group01/1925347167/Week1 Basic Data Structure/ArrayList.java @@ -0,0 +1,64 @@ +package com.coding.basic; + +import java.util.Arrays; + +public class ArrayList implements List { + + private int size = 0; + + private Object[] elementData = new Object[100]; + + public void add(Object o){ + if (fullCheck()) + elementData = Arrays.copyOf(elementData, size*2); + elementData[size++] = o; + } + public void add(int index, Object o){ + + if (fullCheck()) + elementData = Arrays.copyOf(elementData, size*2); + if (!rangeCheck(index)) + throw new IndexOutOfBoundsException(); + for (int i = size; i > index; --i) + elementData[i] = elementData[i-1]; + elementData[index] = o; + size++; + } + + public Object get(int index){ + if (rangeCheck(index)) + return elementData[index]; + throw new IndexOutOfBoundsException(); + } + + public Object remove(int index){ + if (!rangeCheck(index)) + throw new IndexOutOfBoundsException(); + Object rmo = elementData[index]; + for (int i = index; i < size-1; ++i) + elementData[i] = elementData[i-1]; + size--; + return rmo; + } + + public int size(){ + return size; + } + + public Iterator iterator(){ + return null; + } + + private boolean rangeCheck(int index) { + if (index < 0 || index >= size) + return false; + return true; + } + + private boolean fullCheck() { + if (size >= elementData.length) + return true; + return false; + } + +} diff --git a/group01/1925347167/Week1 Basic Data Structure/BinaryTreeNode.java b/group01/1925347167/Week1 Basic Data Structure/BinaryTreeNode.java new file mode 100644 index 0000000000..45827be3a5 --- /dev/null +++ b/group01/1925347167/Week1 Basic Data Structure/BinaryTreeNode.java @@ -0,0 +1,38 @@ +package com.coding.basic; + +public class BinaryTreeNode { + + private Object data; + private BinaryTreeNode left; + private BinaryTreeNode right; + + public BinaryTreeNode(Object o) { + data = o; + left = null; + right = null; + } + + 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/group01/1925347167/Week1 Basic Data Structure/Iterator.java b/group01/1925347167/Week1 Basic Data Structure/Iterator.java new file mode 100644 index 0000000000..06ef6311b2 --- /dev/null +++ b/group01/1925347167/Week1 Basic Data Structure/Iterator.java @@ -0,0 +1,7 @@ +package com.coding.basic; + +public interface Iterator { + public boolean hasNext(); + public Object next(); + +} diff --git a/group01/1925347167/Week1 Basic Data Structure/LinkedList.java b/group01/1925347167/Week1 Basic Data Structure/LinkedList.java new file mode 100644 index 0000000000..3097f69edc --- /dev/null +++ b/group01/1925347167/Week1 Basic Data Structure/LinkedList.java @@ -0,0 +1,127 @@ +package com.coding.basic; + +public class LinkedList implements List { + + private Node head; + + private int size = 0; + + public void add(Object o){ + Node tmp = head; + while (tmp.next != null) + tmp = tmp.next; + + Node n = new Node(o); + tmp.next = n; + size++; + } + public void add(int index , Object o){ + if (!rangeCheck(index)) + throw new IndexOutOfBoundsException(); + + if (index == 0) { + Node newhead = new Node(o); + newhead.next = head; + head = newhead; + } else { + Node tmp = head; + for (int i = 0; i < index - 1; ++i) + tmp = tmp.next; + Node node = new Node(o); + node.next = tmp.next; + tmp.next = node; + } + + size++; + } + public Object get(int index){ + if (!rangeCheck(index)) + throw new IndexOutOfBoundsException(); + Node tmp = head; + for (int i = 0; i < index - 1; ++i) + tmp = tmp.next; + return tmp.data; + + } + + public Object remove(int index){ + if (!rangeCheck(index)) + throw new IndexOutOfBoundsException(); + + if (index == 0) { + Node oldHead= head; + head = head.next; + size--; + return oldHead.data; + }else { + Node tmp = head; + for (int i = 0; i < index - 1; i++) { + tmp = tmp.next; + } + Node node = tmp.next; + tmp.next = node.next; + size--; + return node.data; + } + } + + public int size(){ + return size; + } + + public void addFirst(Object o){ + Node newHead = new Node(o); + newHead.next = head; + head = newHead; + size++; + } + public void addLast(Object o){ + Node tmp = head; + while (tmp.next != null) { + tmp = tmp.next; + } + Node node = new Node(o); + tmp.next = node; + size++; + } + public Object removeFirst(){ + if (head == null) + throw new IndexOutOfBoundsException(); + Node oldHead = head; + head = head.next; + size--; + return oldHead.data; + } + public Object removeLast(){ + if (head == null) + throw new IndexOutOfBoundsException(); + Node tmp = head; + while (tmp.next.next != null) { + tmp = tmp.next; + } + Node node = tmp.next; + tmp.next = null; + size--; + return node.data; + } + public Iterator iterator(){ + return null; + } + + private boolean rangeCheck(int index) { + if (index < 0 || index >= size) + return false; + return true; + } + + private static class Node{ + Object data; + Node next; + + Node(Object data) { + this.data = data; + next = null; + } + + } +} diff --git a/group01/1925347167/Week1 Basic Data Structure/List.java b/group01/1925347167/Week1 Basic Data Structure/List.java new file mode 100644 index 0000000000..10d13b5832 --- /dev/null +++ b/group01/1925347167/Week1 Basic Data Structure/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/group01/1925347167/Week1 Basic Data Structure/Queue.java b/group01/1925347167/Week1 Basic Data Structure/Queue.java new file mode 100644 index 0000000000..b8c394b833 --- /dev/null +++ b/group01/1925347167/Week1 Basic Data Structure/Queue.java @@ -0,0 +1,24 @@ +package com.coding.basic; + +public class Queue { + + private LinkedList llist = new LinkedList(); + + public void enQueue(Object o){ + llist.add(o); + } + + public Object deQueue(){ + if (isEmpty()) + return null; + return llist.removeFirst(); + } + + public boolean isEmpty(){ + return (llist.size()==0); + } + + public int size(){ + return -llist.size(); + } +} diff --git a/group01/1925347167/Week1 Basic Data Structure/Stack.java b/group01/1925347167/Week1 Basic Data Structure/Stack.java new file mode 100644 index 0000000000..4458cb61d7 --- /dev/null +++ b/group01/1925347167/Week1 Basic Data Structure/Stack.java @@ -0,0 +1,28 @@ +package com.coding.basic; + +public class Stack { + + private ArrayList elementData = new ArrayList(); + + public void push(Object o){ + elementData.add(o); + } + + public Object pop(){ + if (isEmpty()) + return null; + return elementData.remove(elementData.size() - 1); + } + + public Object peek(){ + if (elementData.size() == 0) + return null; + return elementData.get(elementData.size() - 1); + } + public boolean isEmpty(){ + return (elementData.size() == 0); + } + public int size(){ + return elementData.size(); + } +} diff --git a/group01/1925347167/Week1 Basic Data Structure/readme.md b/group01/1925347167/Week1 Basic Data Structure/readme.md new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/group01/1925347167/Week1 Basic Data Structure/readme.md @@ -0,0 +1 @@ +