From 782d54803105de43ab2ebdb08cb8fff5b7cbbbd4 Mon Sep 17 00:00:00 2001 From: Jane_Zhou <1294642551@qq.com> Date: Sun, 26 Feb 2017 16:30:36 +0800 Subject: [PATCH] data structures --- group19/1294642551/.gitignore | 1 + group19/1294642551/readme.txt | 1 + .../src/data_Structures/ArrayList.java | 57 ++++++++ .../src/data_Structures/LinkedList.java | 125 ++++++++++++++++++ .../1294642551/src/data_Structures/List.java | 9 ++ .../1294642551/src/data_Structures/Queue.java | 28 ++++ .../1294642551/src/data_Structures/Stack.java | 29 ++++ 7 files changed, 250 insertions(+) create mode 100644 group19/1294642551/.gitignore create mode 100644 group19/1294642551/readme.txt create mode 100644 group19/1294642551/src/data_Structures/ArrayList.java create mode 100644 group19/1294642551/src/data_Structures/LinkedList.java create mode 100644 group19/1294642551/src/data_Structures/List.java create mode 100644 group19/1294642551/src/data_Structures/Queue.java create mode 100644 group19/1294642551/src/data_Structures/Stack.java diff --git a/group19/1294642551/.gitignore b/group19/1294642551/.gitignore new file mode 100644 index 0000000000..ae3c172604 --- /dev/null +++ b/group19/1294642551/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/group19/1294642551/readme.txt b/group19/1294642551/readme.txt new file mode 100644 index 0000000000..747e8550dc --- /dev/null +++ b/group19/1294642551/readme.txt @@ -0,0 +1 @@ +JaneZhou91's files \ No newline at end of file diff --git a/group19/1294642551/src/data_Structures/ArrayList.java b/group19/1294642551/src/data_Structures/ArrayList.java new file mode 100644 index 0000000000..fe0a8c1557 --- /dev/null +++ b/group19/1294642551/src/data_Structures/ArrayList.java @@ -0,0 +1,57 @@ +package data_Structures; + + +public class ArrayList implements List { + + private int size = 0; + + private Object[] elementData = new Object[100]; + + + public void add(Object o){ + + elementData[size] = o; + size++; + } + public void add(int index, Object o){ + + int temp = size; + while(temp > index) + { + elementData[temp] = elementData[temp-1]; + temp--; + } + + elementData[index] = o; + + size++; + + + } + + public Object get(int index){ + return elementData[index]; + } + + public Object remove(int index){ + + int temp = index; + while(temp < size-1) + { + elementData[temp] = elementData[temp+1]; + temp++; + } + size--; + + return elementData[index]; + } + + public int size(){ + return size; + } + + public Iterator iterator(){ + return null; + } + +} diff --git a/group19/1294642551/src/data_Structures/LinkedList.java b/group19/1294642551/src/data_Structures/LinkedList.java new file mode 100644 index 0000000000..5a1efb6d71 --- /dev/null +++ b/group19/1294642551/src/data_Structures/LinkedList.java @@ -0,0 +1,125 @@ +package data_Structures; + + +public class LinkedList implements List { + + private Node head; + private int size; + + LinkedList() + { + size = 0; + } + + public void add(Object o){ + + Node newNode = new Node(o); + + if(head == null) + { + head = newNode; + } + else + { + Node tempNode = head; + while(tempNode.next != null) + { + tempNode = tempNode.next; + } + tempNode.next = newNode; + + } + + size++; + } + + public void add(int index , Object o){ + + Node newNode = new Node(o, getNode(index)); + getNode(index-1).next = newNode; + + size++; + + } + + public Node getNode(int index) + { + Node tempNode = head; + int i = 0; + while(i < index) + { + tempNode = tempNode.next; + i++; + } + + return tempNode; + } + + + + public Object get(int index){ + return getNode(index).data; + } + public Object remove(int index){ + + Node tempNode = getNode(index); + getNode(index - 1).next = getNode(index+1); + tempNode.next = null; + tempNode.data = null; + size--; + return getNode(index).data; + + } + + public int size(){ + return size; + } + + public void addFirst(Object o){ + + Node tempNode = head; + head = new Node(o); + head.next = tempNode; + + size++; + } + public void addLast(Object o){ + add(o); + + } + public Object removeFirst(){ + + Node tempNode = head; + head = getNode(1); + size--; + + return tempNode.data; + } + public Object removeLast(){ + getNode(size-1).next = null; + size--; + return getNode(size).data; + } + public Iterator iterator(){ + return null; + } + + + private static class Node{ + Object data; + Node next; + + Node(Object data, Node next ) + { + this.data = data; + this.next = next; + } + + Node(Object data) + { + this.data = data; + this.next = null; + } + + } +} diff --git a/group19/1294642551/src/data_Structures/List.java b/group19/1294642551/src/data_Structures/List.java new file mode 100644 index 0000000000..2b7b51d97f --- /dev/null +++ b/group19/1294642551/src/data_Structures/List.java @@ -0,0 +1,9 @@ +package data_Structures; + +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/group19/1294642551/src/data_Structures/Queue.java b/group19/1294642551/src/data_Structures/Queue.java new file mode 100644 index 0000000000..0926e3a31c --- /dev/null +++ b/group19/1294642551/src/data_Structures/Queue.java @@ -0,0 +1,28 @@ +package data_Structures; + +public class Queue { + + private LinkedList ll; + + Queue() + { + ll = new LinkedList(); + } + + public void enQueue(Object o){ + ll.add(o);; + } + + public Object deQueue(){ + return ll.removeFirst(); + } + + public boolean isEmpty(){ + int size = ll.size(); + return (size == 0); + } + + public int size(){ + return ll.size(); + } +} diff --git a/group19/1294642551/src/data_Structures/Stack.java b/group19/1294642551/src/data_Structures/Stack.java new file mode 100644 index 0000000000..575e451451 --- /dev/null +++ b/group19/1294642551/src/data_Structures/Stack.java @@ -0,0 +1,29 @@ +package data_Structures; + +public class Stack { +// private ArrayList elementData = new ArrayList(); + + private LinkedList ll; + Stack() + { + ll = new LinkedList(); + } + + public void push(Object o){ + ll.addLast(o); + } + + public Object pop(){ + return ll.removeLast(); + } + + public Object peek(){ + return null; + } + public boolean isEmpty(){ + return ll.size()==0; + } + public int size(){ + return ll.size(); + } +}