Skip to content

Commit 6b30a5c

Browse files
authored
Merge pull request onlyliuxin#18 from YukoOshima/master
hw
2 parents bca76d7 + 8970100 commit 6b30a5c

File tree

8 files changed

+279
-0
lines changed

8 files changed

+279
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import java.util.Objects;
2+
3+
public class ArrayList implements List {
4+
5+
private int size = 0;
6+
7+
private Object[] elementData = new Object[100];
8+
9+
public void add(Object o){
10+
elementData[size++] = o;
11+
}
12+
public void add(int index, Object o){
13+
for (int i = size; i >index; i++) {
14+
elementData[i] = elementData[i - 1];
15+
}
16+
elementData[index] = o;
17+
}
18+
19+
public Object get(int index){
20+
return elementData[index];
21+
}
22+
23+
public Object removeLast() {
24+
return elementData[size--];
25+
}
26+
27+
public Object remove(int index){
28+
Object temp = elementData[index];
29+
for (int i = index; i < size - 1; i++) {
30+
elementData[i] = elementData[i + 1];
31+
}
32+
size -= 1;
33+
return temp;
34+
}
35+
36+
public int size(){
37+
return size;
38+
}
39+
40+
public Iterator iterator(){
41+
return new myIterator(this);
42+
}
43+
44+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import com.sun.xml.internal.bind.v2.runtime.AttributeAccessor;
2+
3+
public class BinaryTreeNode {
4+
5+
private int data;
6+
private BinaryTreeNode left;
7+
private BinaryTreeNode right;
8+
9+
public int getData() {
10+
return data;
11+
}
12+
public void setData(int data) {
13+
this.data = data;
14+
}
15+
public BinaryTreeNode getLeft() {
16+
return left;
17+
}
18+
public void setLeft(BinaryTreeNode left) {
19+
this.left = left;
20+
}
21+
public BinaryTreeNode getRight() {
22+
return right;
23+
}
24+
public void setRight(BinaryTreeNode right) {
25+
this.right = right;
26+
}
27+
28+
public BinaryTreeNode insert(int o){
29+
BinaryTreeNode returnNode = null;
30+
if (data < o) {
31+
if (right == null) {
32+
right = new BinaryTreeNode(o, null, null);
33+
returnNode = right;
34+
} else {
35+
returnNode = right.insert(o);
36+
}
37+
} else if (data > o) {
38+
if (left == null) {
39+
returnNode = left = new BinaryTreeNode(o, null, null);
40+
} else {
41+
returnNode = left.insert(o);
42+
}
43+
}
44+
return returnNode;
45+
}
46+
47+
BinaryTreeNode (int initData, BinaryTreeNode initLeft, BinaryTreeNode initRight) {
48+
data = initData;
49+
left = initLeft;
50+
right = initRight;
51+
}
52+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
public interface Iterator {
2+
public boolean hasNext();
3+
public Object next();
4+
}
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
public class LinkedList implements List {
2+
3+
private Node head;
4+
private int size = 0;
5+
6+
public void add(Object o){
7+
if (head == null) {
8+
head = new Node(o);
9+
} else {
10+
Node pointer = head.next;
11+
while (pointer.next != null) {
12+
pointer = pointer.next;
13+
}
14+
pointer.next = new Node(o);
15+
}
16+
size++;
17+
}
18+
public void add(int index , Object o){
19+
Node pointer = head;
20+
for (int i = 0; i < index - 1; i++) {
21+
pointer = pointer.next;
22+
}
23+
Node nNode = new Node(o, pointer.next);
24+
pointer.next = nNode;
25+
size++;
26+
}
27+
public Object get(int index){
28+
Node pointer = head;
29+
for (int i= 0; i < index; i++) {
30+
pointer = pointer.next;
31+
}
32+
return pointer;
33+
}
34+
public Object remove(int index){
35+
Node pointer = head;
36+
for (int i = 0; i < index - 1; i++) {
37+
pointer = pointer.next;
38+
}
39+
Node temp = pointer.next;
40+
pointer.next = temp.next;
41+
size--;
42+
return temp;
43+
}
44+
45+
public int size(){
46+
return size;
47+
}
48+
49+
public void addFirst(Object o){
50+
head = new Node(o, head);
51+
}
52+
public void addLast(Object o){
53+
Node pointer = head;
54+
while (pointer.next != null) {
55+
pointer = pointer.next;
56+
}
57+
pointer.next = new Node(o);
58+
}
59+
public Object removeFirst(){
60+
Node temp = head;
61+
head = head.next;
62+
return temp;
63+
}
64+
public Object removeLast(){
65+
Node pointer = head;
66+
while (pointer.next.next != null) {
67+
pointer = pointer.next;
68+
}
69+
Node temp = pointer.next;
70+
pointer.next = null;
71+
return temp;
72+
}
73+
public myIterator iterator(){
74+
return new myIterator(this);
75+
}
76+
77+
78+
private static class Node{
79+
Object data;
80+
Node next;
81+
Node (Object o, Node n) {
82+
data = o;
83+
next = n;
84+
}
85+
Node (Object o) {
86+
data = o;
87+
next = null;
88+
}
89+
}
90+
}

group08/125980622/first_hw/List.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
public interface List {
2+
public void add(Object o);
3+
public void add(int index, Object o);
4+
public Object get(int index);
5+
public Object remove(int index);
6+
public int size();
7+
}

group08/125980622/first_hw/Queue.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
public class Queue {
3+
4+
LinkedList queueList = new LinkedList();
5+
6+
public void enQueue(Object o){
7+
queueList.addLast(o);
8+
}
9+
10+
public Object deQueue(){
11+
return queueList.removeFirst();
12+
}
13+
14+
public boolean isEmpty(){
15+
return queueList.size() <= 0;
16+
}
17+
18+
public int size(){
19+
return queueList.size();
20+
}
21+
}

group08/125980622/first_hw/Stack.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
public class Stack {
2+
private ArrayList elementData = new ArrayList();
3+
4+
private int size = 0;
5+
6+
public void push(Object o){
7+
elementData.add(o);
8+
size++;
9+
}
10+
11+
public Object pop(){
12+
return elementData.remove(size);
13+
}
14+
15+
public Object peek(){
16+
return elementData.get(size);
17+
}
18+
public boolean isEmpty(){
19+
return size <= 0;
20+
}
21+
public int size(){
22+
return size;
23+
}
24+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import java.util.Objects;
2+
3+
/**
4+
* Created by Yusen Meng on 25/02/2017.
5+
*/
6+
public class myIterator implements Iterator {
7+
int index = 0;
8+
ArrayList _array = null;
9+
LinkedList _list = null;
10+
myIterator (LinkedList theList) {
11+
_list = theList;
12+
}
13+
myIterator (ArrayList theArray) {
14+
_array = theArray;
15+
}
16+
public boolean hasNext() {
17+
boolean result;
18+
if (_array != null) {
19+
result = index < _array.size();
20+
} else {
21+
result = index < _list.size();
22+
}
23+
return result;
24+
}
25+
26+
public Object next() {
27+
Object returnValue;
28+
if (_array != null) {
29+
returnValue = _array.get(index);
30+
index++;
31+
} else {
32+
returnValue = _list.get(index);
33+
index++;
34+
}
35+
return returnValue;
36+
}
37+
}

0 commit comments

Comments
 (0)