Skip to content

Commit fe6852e

Browse files
Merge pull request onlyliuxin#5 from longcloud/master
Hi leader, can I add my first homework
2 parents c645c2d + 5918d32 commit fe6852e

File tree

13 files changed

+504
-0
lines changed

13 files changed

+504
-0
lines changed

group03/619224754/.classpath

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry kind="src" path="src"/>
4+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
5+
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
6+
<classpathentry kind="output" path="bin"/>
7+
</classpath>

group03/619224754/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/bin/

group03/619224754/.project

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>2017Learning</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.jdt.core.javabuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
</buildSpec>
14+
<natures>
15+
<nature>org.eclipse.jdt.core.javanature</nature>
16+
</natures>
17+
</projectDescription>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
eclipse.preferences.version=1
2+
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3+
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
4+
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
5+
org.eclipse.jdt.core.compiler.compliance=1.8
6+
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
7+
org.eclipse.jdt.core.compiler.debug.localVariable=generate
8+
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
9+
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
10+
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
11+
org.eclipse.jdt.core.compiler.source=1.8

group03/619224754/src/Main/Main.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package Main;
2+
3+
public class Main {
4+
5+
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package com.coding.basic;
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+
if(elementData.length == size) {
11+
Object[] arrTaget = new Object[size * 2];
12+
System.arraycopy(elementData, 0, arrTaget, 0, size);
13+
this.elementData = arrTaget;
14+
}
15+
16+
elementData[size++] = o;
17+
}
18+
19+
public void add(int index, Object o){
20+
if(index < 0 || index > size){
21+
throw new IndexOutOfBoundsException("Index out of bound");
22+
}
23+
Object[] arrTarget = new Object[size - index];
24+
System.arraycopy(elementData, index, arrTarget, 0, size - index);
25+
elementData[index] = o;
26+
System.arraycopy(arrTarget, 0, elementData, index + 1, size - index);
27+
}
28+
29+
public Object get(int index){
30+
return elementData[index];
31+
}
32+
33+
public Object remove(int index){
34+
Object retObj = elementData[index];
35+
36+
if(index < 0 || index > size){
37+
throw new IndexOutOfBoundsException("Index out of bound");
38+
}
39+
else if(index == size) {
40+
elementData[index] = null;
41+
}
42+
else {
43+
System.arraycopy(elementData, index + 1, elementData, index, size - index);
44+
}
45+
46+
size--;
47+
return retObj;
48+
}
49+
50+
public int size(){
51+
return this.size;
52+
}
53+
54+
public Iterator iterator(){
55+
return new ArrayListIterator();
56+
}
57+
58+
private class ArrayListIterator implements Iterator{
59+
60+
private int cursor = 0;
61+
62+
@Override
63+
public boolean hasNext() {
64+
// TODO Auto-generated method stub
65+
return this.cursor != size;
66+
}
67+
68+
@Override
69+
public Object next() {
70+
// TODO Auto-generated method stub
71+
return elementData[this.cursor++];
72+
}
73+
}
74+
75+
}
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package com.coding.basic;
2+
3+
import java.util.Comparator;
4+
5+
public class BinaryTreeNode {
6+
7+
private Object data;
8+
private BinaryTreeNode left;
9+
private BinaryTreeNode right;
10+
11+
public Object getData() {
12+
return data;
13+
}
14+
15+
public void setData(Object data) {
16+
this.data = data;
17+
}
18+
19+
public BinaryTreeNode getLeft() {
20+
return left;
21+
}
22+
23+
public void setLeft(BinaryTreeNode left) {
24+
this.left = left;
25+
}
26+
27+
public BinaryTreeNode getRight() {
28+
return right;
29+
}
30+
31+
public void setRight(BinaryTreeNode right) {
32+
this.right = right;
33+
}
34+
35+
public BinaryTreeNode insert(Object o){
36+
BinaryTreeNode treeNode = new BinaryTreeNode();
37+
treeNode.data = o;
38+
int intO = Integer.parseInt(o.toString());
39+
int intData = Integer.parseInt(this.data.toString());
40+
if(intO > intData){
41+
if(this.right == null){
42+
this.right = treeNode;
43+
}
44+
else {
45+
this.right.insert(o);
46+
}
47+
}
48+
else {
49+
if(this.left == null) {
50+
this.left = treeNode;
51+
}
52+
else {
53+
this.left.insert(o);
54+
}
55+
}
56+
return treeNode;
57+
}
58+
59+
private class MyComparator implements Comparator<BinaryTreeNode> {
60+
61+
@Override
62+
public int compare(BinaryTreeNode arg0, BinaryTreeNode arg1) {
63+
// TODO Auto-generated method stub
64+
int int0 = Integer.parseInt(arg0.data.toString());
65+
int int1 = Integer.parseInt(arg1.data.toString());
66+
if(int0 > int1) {
67+
return 1;
68+
}
69+
else if(int0 < int1){
70+
return -1;
71+
}
72+
73+
return 0;
74+
75+
}
76+
77+
78+
}
79+
80+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.coding.basic;
2+
3+
public interface Iterator {
4+
public boolean hasNext();
5+
public Object next();
6+
7+
}
Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
package com.coding.basic;
2+
3+
public class LinkedList implements List {
4+
5+
private Node head;
6+
7+
public void add(Object o) {
8+
if(head == null) {
9+
head = new Node();
10+
head.data = o;
11+
}
12+
else {
13+
Node newNode = new Node();
14+
newNode.data = o;
15+
Node lastNode = head;
16+
while(head.next != null) {
17+
lastNode = head.next;
18+
}
19+
lastNode.next = newNode;
20+
}
21+
}
22+
23+
public void add(int index , Object o) {
24+
if(index >= this.size())
25+
throw new IndexOutOfBoundsException("Index out of bound");
26+
27+
Node newNode = new Node();
28+
newNode.data = o;
29+
if(index == 0) {
30+
newNode.next = this.head;
31+
this.head = newNode;
32+
}
33+
else if(index == this.size()) {
34+
Node curNode = this.head;
35+
while(curNode.next != null){
36+
curNode = curNode.next;
37+
}
38+
curNode.next = newNode;
39+
}
40+
else {
41+
Node beforeNode = this.head;
42+
Node afterNode = null;
43+
for(int i = 1; i < index; i++) {
44+
beforeNode = head.next;
45+
}
46+
afterNode = beforeNode.next;
47+
newNode.next = afterNode;
48+
beforeNode.next = newNode;
49+
}
50+
}
51+
52+
public Object get(int index){
53+
Node retNode = this.head;
54+
55+
if(index < 0){
56+
throw new IndexOutOfBoundsException("Index out of bound");
57+
}
58+
59+
if(index != 0) {
60+
for(int i = 0; i < index; i++) {
61+
retNode = retNode.next;
62+
}
63+
}
64+
65+
return retNode.data;
66+
}
67+
68+
public Object remove(int index){
69+
Node beforeNode = null;
70+
Node afterNode = null;
71+
Node removedNode = null;
72+
if(index == 0) {
73+
removedNode = this.head;
74+
this.head = this.head.next;
75+
}
76+
else {
77+
for(int i = 1; i < index; i++) {
78+
beforeNode = head.next;
79+
}
80+
removedNode = beforeNode.next;
81+
afterNode = removedNode.next;
82+
beforeNode.next = afterNode;
83+
}
84+
85+
86+
return removedNode.data;
87+
}
88+
89+
public int size(){
90+
int i = 0;
91+
if(this.head == null)
92+
return 0;
93+
94+
Node curNode = this.head;
95+
while(curNode != null){
96+
curNode = curNode.next;
97+
i++;
98+
}
99+
return i;
100+
}
101+
102+
public void addFirst(Object o){
103+
Node firstNode = new Node();
104+
firstNode.data = o;
105+
firstNode.next = this.head;
106+
this.head = firstNode;
107+
}
108+
109+
public void addLast(Object o){
110+
Node newNode = new Node();
111+
newNode.data = o;
112+
if(this.size() == 0){
113+
this.head = newNode;
114+
}
115+
116+
Node curNode = this.head;
117+
while(curNode.next != null) {
118+
curNode = curNode.next;
119+
}
120+
curNode.next = newNode;
121+
}
122+
123+
public Object removeFirst() {
124+
Node retNode = this.head;
125+
this.head = this.head.next;
126+
127+
return retNode;
128+
}
129+
130+
public Object removeLast() {
131+
Node curNode = null;
132+
if(this.size() == 0) {
133+
curNode = null;
134+
}
135+
else if(this.size() == 1) {
136+
curNode = this.head;
137+
this.head = null;
138+
return curNode;
139+
}
140+
else {
141+
Node beforeNode = this.head;
142+
for (int i = 1; i < this.size() - 1; i++) {
143+
beforeNode = beforeNode.next;
144+
}
145+
curNode = beforeNode.next;
146+
beforeNode.next = null;
147+
}
148+
149+
return curNode;
150+
}
151+
152+
public Iterator iterator(){
153+
return null;
154+
}
155+
156+
private class LinkedListIterator implements Iterator {
157+
158+
private Node curNode = head;
159+
160+
@Override
161+
public boolean hasNext() {
162+
// TODO Auto-generated method stub
163+
return this.curNode.next != null;
164+
}
165+
166+
@Override
167+
public Object next() {
168+
// TODO Auto-generated method stub
169+
return this.curNode.next;
170+
}
171+
172+
173+
174+
}
175+
176+
177+
private static class Node{
178+
Object data;
179+
Node next;
180+
181+
}
182+
}

0 commit comments

Comments
 (0)