Skip to content

Commit 5b8d22e

Browse files
authored
Merge pull request onlyliuxin#3 from Dalphist/master
week1_homework
2 parents 673c232 + 603121f commit 5b8d22e

File tree

12 files changed

+411
-0
lines changed

12 files changed

+411
-0
lines changed

group05/399258474/.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>

group05/399258474/.gitignore

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

group05/399258474/.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
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
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[2];
8+
9+
public void add(Object o){
10+
int len = elementData.length;
11+
if(size >= len){
12+
Object[] new_elmentData = new Object[len*2];
13+
System.arraycopy(elementData, 0, new_elmentData, 0, size);
14+
elementData = new_elmentData;
15+
}
16+
elementData[size] = o;
17+
size ++;
18+
}
19+
public void add(int index, Object o){
20+
if(index >= size){
21+
throw new RuntimeException("下标越界");
22+
}
23+
Object[] new_elementData = new Object[size+1];
24+
System.arraycopy(elementData, 0, new_elementData, 0, index);
25+
System.arraycopy(elementData, index, new_elementData, index+1, size-index);
26+
new_elementData[index] = o;
27+
elementData = new_elementData;
28+
size++;
29+
}
30+
31+
public Object get(int index){
32+
if(index >= size){
33+
throw new RuntimeException("下标越界");
34+
}
35+
return elementData[index];
36+
}
37+
38+
public Object remove(int index){
39+
if(index >= size){
40+
throw new RuntimeException("下标越界");
41+
}
42+
Object oldElement = elementData[index];
43+
if((index+1) != size){
44+
System.arraycopy(elementData, index+1, elementData, index, size-index-1);
45+
}
46+
elementData[size-1] = null;
47+
size --;
48+
return oldElement;
49+
}
50+
51+
public int size(){
52+
return size;
53+
}
54+
55+
public Iterator iterator(){
56+
return null;
57+
}
58+
59+
@Override
60+
public String toString() {
61+
String s = "{";
62+
for (int i = 0; i < size; i++) {
63+
if(i == (size -1)){
64+
s += elementData[i] + "}";
65+
}else{
66+
s += elementData[i]+",";
67+
}
68+
}
69+
return s;
70+
}
71+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.coding.basic;
2+
3+
public class BinaryTreeNode {
4+
5+
private Object data;
6+
private BinaryTreeNode left;
7+
private BinaryTreeNode right;
8+
9+
public Object getData() {
10+
return data;
11+
}
12+
public void setData(Object 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(Object o){
29+
return null;
30+
}
31+
32+
}
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: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
package com.coding.basic;
2+
3+
public class LinkedList implements List {
4+
5+
private Node head;
6+
private int size;
7+
8+
public LinkedList(){
9+
head = new Node(new Object(),null,null);
10+
}
11+
12+
public void add(Object o){
13+
Node last = head;
14+
for (int i = 0; i < size; i++) {
15+
last = last.next;
16+
}
17+
Node newNode = new Node(o,null,last);
18+
last.next = newNode;
19+
size++;
20+
}
21+
public void add(int index , Object o){
22+
Node oldNode = getNode(index);
23+
Node newNode = new Node(o, oldNode, oldNode.prev);
24+
oldNode.prev.next = newNode;
25+
oldNode.prev = newNode;
26+
size ++;
27+
}
28+
public Object get(int index){
29+
Node node = getNode(index);
30+
return node.data;
31+
}
32+
33+
private Node getNode(int index){
34+
Node n = head.next;
35+
for (int i = 0; i < index; i++) {
36+
n = n.next;
37+
}
38+
return n;
39+
}
40+
41+
public Object remove(int index){
42+
Node node = getNode(index);
43+
Object o =node.data;
44+
Node prevNode = node.prev;
45+
Node nextNode = node.next;
46+
prevNode.next = nextNode;
47+
nextNode.prev = prevNode;
48+
node.next = node.prev =null;
49+
node.data = null;
50+
size --;
51+
return o;
52+
}
53+
54+
public int size(){
55+
return size;
56+
}
57+
58+
public void addFirst(Object o){
59+
add(0,o);
60+
}
61+
public void addLast(Object o){
62+
add(o);
63+
}
64+
public Object removeFirst(){
65+
Object o = remove(0);
66+
return o;
67+
}
68+
public Object removeLast(){
69+
Object o = remove(size);
70+
return o;
71+
}
72+
public Iterator iterator(){
73+
return null;
74+
}
75+
76+
77+
private static class Node{
78+
Object data;
79+
Node next;
80+
Node prev;
81+
82+
public Node(Object o,Node next,Node prev){
83+
this.data = o;
84+
this.next = next;
85+
this.prev = prev;
86+
}
87+
}
88+
89+
@Override
90+
public String toString() {
91+
String s = "{";
92+
Node n = head;
93+
for (int i = 0; i < size; i++) {
94+
n = n.next;
95+
if(i == (size -1)){
96+
s += n.data;
97+
}else{
98+
s += n.data + ",";
99+
}
100+
}
101+
s += "}";
102+
return s;
103+
}
104+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.coding.basic;
2+
3+
public interface List {
4+
public void add(Object o);
5+
public void add(int index, Object o);
6+
public Object get(int index);
7+
public Object remove(int index);
8+
public int size();
9+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.coding.basic;
2+
3+
public class Queue {
4+
private LinkedList list = new LinkedList();
5+
6+
public void enQueue(Object o){
7+
list.add(o);
8+
}
9+
10+
public Object deQueue(){
11+
if(isEmpty()){
12+
throw new RuntimeException("已为空");
13+
}
14+
Object o = list.get(0);
15+
list.remove(0);
16+
return o;
17+
}
18+
19+
public boolean isEmpty(){
20+
if(size() == 0){
21+
return true;
22+
}else{
23+
return false;
24+
}
25+
}
26+
27+
public int size(){
28+
return list.size();
29+
}
30+
31+
@Override
32+
public String toString() {
33+
return list.toString();
34+
}
35+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.coding.basic;
2+
3+
public class Stack {
4+
private ArrayList elementData = new ArrayList();
5+
6+
public void push(Object o){
7+
elementData.add(o);
8+
}
9+
10+
public Object pop(){
11+
if(isEmpty()){
12+
throw new RuntimeException("已为空");
13+
}
14+
Object o = elementData.get(elementData.size()-1);
15+
elementData.remove(elementData.size()-1);
16+
return o;
17+
}
18+
19+
public Object peek(){
20+
Object o = elementData.get(elementData.size()-1);
21+
return o;
22+
}
23+
public boolean isEmpty(){
24+
int size = elementData.size();
25+
if(size == 0){
26+
return true;
27+
}else{
28+
return false;
29+
}
30+
}
31+
public int size(){
32+
return elementData.size();
33+
}
34+
35+
@Override
36+
public String toString() {
37+
return elementData.toString();
38+
}
39+
}

0 commit comments

Comments
 (0)