Skip to content

Commit 5f73998

Browse files
committed
Merge remote-tracking branch 'refs/remotes/leijing1992/master'
2 parents b9d5357 + 99f12ba commit 5f73998

File tree

12 files changed

+579
-0
lines changed

12 files changed

+579
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
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="output" path="bin"/>
6+
</classpath>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
*.class
2+
3+
# Mobile Tools for Java (J2ME)
4+
.mtj.tmp/
5+
6+
# Package Files #
7+
*.jar
8+
*.war
9+
*.ear
10+
11+
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
12+
hs_err_pid*
13+
14+
#ide config
15+
.metadata
16+
.recommenders
17+
/bin/
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>MyDataStructure</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: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.coding.basic;
2+
3+
public class BinaryTreeNode {
4+
private Object data;
5+
private BinaryTreeNode left;
6+
private BinaryTreeNode right;
7+
8+
public void insert(BinaryTreeNode node) {
9+
if (this.data == null) {
10+
// empty binary tree
11+
this.data = node.data;
12+
this.left = node.left;
13+
this.right = node.right;
14+
} else if (((Integer) this.data).intValue() >= ((Integer) node.data).intValue()) {
15+
this.left.insert(node);
16+
}else{
17+
this.right.insert(node);
18+
}
19+
}
20+
21+
public Object getData() {
22+
return data;
23+
}
24+
25+
public void setData(Object data) {
26+
this.data = data;
27+
}
28+
29+
public BinaryTreeNode getLeft() {
30+
return left;
31+
}
32+
33+
public void setLeft(BinaryTreeNode left) {
34+
this.left = left;
35+
}
36+
37+
public BinaryTreeNode getRight() {
38+
return right;
39+
}
40+
41+
public void setRight(BinaryTreeNode right) {
42+
this.right = right;
43+
}
44+
}
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
package com.coding.basic;
2+
3+
import java.util.Arrays;
4+
5+
public class MyArrayList implements MyList{
6+
7+
private int size = 0;
8+
9+
private Object[] elementData = new Object[5];
10+
11+
@Override
12+
/**
13+
* add an element to the end
14+
*/
15+
public void add(Object o) {
16+
int index = size;
17+
if(isFull()){
18+
extendLength();
19+
}
20+
elementData[index] = o;
21+
size++;
22+
}
23+
24+
@Override
25+
/**
26+
* add an element to certain index
27+
*/
28+
public void add(int index, Object o) {
29+
checkBounds(index);
30+
if(isFull()){
31+
extendLength();
32+
}
33+
for(int i=size; i>=index; i--){
34+
elementData[i+1] = elementData[i];
35+
}
36+
elementData[index] = o;
37+
size++;
38+
}
39+
40+
@Override
41+
/**
42+
* get an element
43+
*/
44+
public Object get(int index) {
45+
checkBoundsForGet(index);
46+
if(index >= size){
47+
return null;
48+
}
49+
return elementData[index];
50+
}
51+
52+
@Override
53+
/**
54+
* remove an element
55+
*/
56+
public Object remove(int index) {
57+
checkBounds(index);
58+
Object res = elementData[index];
59+
for(int i=index+1; i<=size; i++){
60+
elementData[i-1] = elementData[i];
61+
}
62+
size--;
63+
return res;
64+
}
65+
66+
@Override
67+
public int size() {
68+
return size;
69+
}
70+
71+
/**
72+
* extends the length
73+
*/
74+
public void extendLength(){
75+
elementData = Arrays.copyOf(elementData, elementData.length * 2);
76+
//System.out.println("add extend "+elementData.length);
77+
}
78+
79+
public boolean isEmpty(){
80+
return size == 0;
81+
}
82+
83+
public boolean isFull(){
84+
int len = elementData.length;
85+
if(size >= len-1){
86+
return true;
87+
}
88+
return false;
89+
}
90+
91+
public void checkBounds(int index){
92+
if(index >= size || index < 0){
93+
//System.out.println("From MyArrayList: Index out of bounds");
94+
throw new IndexOutOfBoundsException(OutOfBoundsMsg(index));
95+
}
96+
}
97+
98+
/**
99+
* for get()
100+
* @param index
101+
*/
102+
public void checkBoundsForGet(int index){
103+
if(index >= elementData.length || index < 0){
104+
//System.out.println("From MyArrayList: Index out of bounds");
105+
throw new IndexOutOfBoundsException(OutOfBoundsMsg(index));
106+
}
107+
}
108+
109+
public String OutOfBoundsMsg(int index){
110+
return "Index: "+index+", Size: "+size;
111+
}
112+
113+
@Override
114+
public String toString() {
115+
String s = "";
116+
for(int i=0; i<size; i++){
117+
s += elementData[i] + " ";
118+
}
119+
return s;
120+
}
121+
122+
public MyIterator iterator() {
123+
return new ArrayListIterator(this);
124+
}
125+
126+
private class ArrayListIterator implements MyIterator{
127+
128+
private MyArrayList eleIterator;
129+
int pos;//current position
130+
int len;//size of elementData
131+
132+
private ArrayListIterator(MyArrayList mal){
133+
eleIterator = mal;
134+
pos = 0;
135+
len = mal.size();
136+
}
137+
138+
@Override
139+
public boolean hasNext() {
140+
return pos < len;
141+
}
142+
143+
@Override
144+
public Object next() {
145+
return eleIterator.get(pos++);
146+
}
147+
148+
}
149+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.coding.basic;
2+
3+
public interface MyIterator {
4+
public boolean hasNext();
5+
public Object next();
6+
}

0 commit comments

Comments
 (0)