Skip to content

Commit e24cab5

Browse files
committed
week01
1 parent cd2383d commit e24cab5

File tree

11 files changed

+498
-0
lines changed

11 files changed

+498
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.coding.basic;
2+
3+
public class ArrayIterator implements Iterator{
4+
5+
private int index = 0;
6+
private List list ;
7+
8+
public ArrayIterator(List list){
9+
this.list = list;
10+
}
11+
12+
@Override
13+
public boolean hasNext() {
14+
15+
if(index<list.size()){
16+
return true;
17+
}else{
18+
return false;
19+
}
20+
}
21+
22+
@Override
23+
public Object next() {
24+
return list.get(index++);
25+
}
26+
27+
}
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
package com.coding.basic;
2+
3+
import java.util.Arrays;
4+
5+
public class ArrayList implements List {
6+
7+
private int size = 0;
8+
9+
private Object[] elementData = new Object[5];
10+
11+
public void add(Object o){
12+
if(++size > elementData.length){
13+
elementData = Arrays.copyOf(elementData, elementData.length*2);
14+
}
15+
elementData[size-1] = o;
16+
17+
}
18+
public void add(int index, Object o){
19+
Object[] tmp = new Object[elementData.length];
20+
21+
if(index<0 || index >elementData.length-1){
22+
return;
23+
}
24+
if(++size > elementData.length){
25+
elementData = Arrays.copyOf(elementData, elementData.length*2);
26+
tmp = new Object[elementData.length];
27+
}
28+
System.arraycopy(elementData, 0, tmp, 0, index);
29+
System.arraycopy(elementData, index, tmp, index+1, size-index);
30+
tmp[index] = o;
31+
elementData=tmp;
32+
33+
}
34+
35+
public Object get(int index){
36+
if(index<0 || index >elementData.length-1){
37+
return null;
38+
}
39+
return elementData[index];
40+
}
41+
42+
public Object remove(int index){
43+
Object o=null;
44+
o = elementData[index];
45+
if(--size%5 == 0){
46+
elementData = Arrays.copyOf(elementData, elementData.length/2);
47+
}else if(index == size-1){
48+
elementData[index] = null;
49+
}else if(index == size-1){
50+
51+
System.arraycopy(elementData, index+1, elementData, index, size-index-1);
52+
}
53+
54+
return o;
55+
}
56+
57+
public int size(){
58+
return size;
59+
}
60+
61+
public Iterator iterator(){
62+
return new ArrayIterator(this);
63+
}
64+
65+
}
66+
67+
68+
69+
70+
71+
72+
73+
74+
75+
76+
77+
78+
79+
80+
81+
82+
83+
84+
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package com.coding.basic;
2+
3+
4+
public class BinaryTree {
5+
6+
private BinaryTreeNode root;
7+
8+
public void insert(Integer o){
9+
BinaryTreeNode node = new BinaryTreeNode(o);
10+
if(root == null){
11+
root = node;
12+
}else{
13+
BinaryTreeNode current = root;
14+
BinaryTreeNode parent;
15+
16+
while(true){
17+
parent = current;
18+
if(o<parent.getData()){
19+
current = parent.getLeft();
20+
if(current == null){
21+
parent.setLeft(node);
22+
return;
23+
}
24+
}else{
25+
current = parent.getRight();
26+
if(current == null){
27+
parent.setRight(node);
28+
return;
29+
}
30+
}
31+
}
32+
}
33+
}
34+
35+
public BinaryTreeNode find(Integer i){
36+
37+
BinaryTreeNode node = root;
38+
39+
while(node != null){
40+
if(i<node.getData()){
41+
node = node.getLeft();
42+
}else if(i>node.getData()){
43+
node = node.getRight();
44+
}else{
45+
return node;
46+
}
47+
}
48+
49+
return null;
50+
}
51+
52+
53+
}
54+
55+
56+
57+
58+
59+
60+
61+
62+
63+
64+
65+
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.coding.basic;
2+
3+
4+
public class BinaryTreeNode {
5+
6+
private Integer data;
7+
private BinaryTreeNode left;
8+
private BinaryTreeNode right;
9+
10+
public BinaryTreeNode(Integer data){
11+
this.data = data;
12+
}
13+
14+
public Integer getData() {
15+
return data;
16+
}
17+
public void setData(Integer data) {
18+
this.data = data;
19+
}
20+
public BinaryTreeNode getLeft() {
21+
return left;
22+
}
23+
public void setLeft(BinaryTreeNode left) {
24+
this.left = left;
25+
}
26+
public BinaryTreeNode getRight() {
27+
return right;
28+
}
29+
public void setRight(BinaryTreeNode right) {
30+
this.right = right;
31+
}
32+
33+
}
34+
35+
36+
37+
38+
39+
40+
41+
42+
43+
44+
45+
46+
47+
48+
49+
50+
51+
52+
53+
54+
55+
56+
57+
58+
59+
60+
61+
62+
63+
64+
65+
66+
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: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
package com.coding.basic;
2+
3+
public class LinkedList implements List {
4+
5+
private Node head;
6+
private int size = 0;
7+
8+
public void add(Object o){
9+
++size;
10+
Node node = new Node(o);
11+
12+
if(head == null){
13+
head = node;
14+
return;
15+
}
16+
Node tmp = new Node(o);
17+
tmp = head;
18+
while(tmp.next!=null){
19+
tmp = tmp.next;
20+
}
21+
tmp.next = node;
22+
}
23+
public void add(int index , Object o){
24+
++size;
25+
Node node = new Node(o);
26+
Node tmp = new Node(o);
27+
tmp = head;
28+
int i =0;
29+
while(tmp.next!=null && i<index-1){
30+
tmp = tmp.next;
31+
i++;
32+
}
33+
node.next = tmp.next;
34+
tmp.next = node;
35+
36+
}
37+
public Object get(int index){
38+
39+
if(head == null){
40+
return null;
41+
}
42+
Node tmp = head;
43+
int i =0;
44+
while(tmp.next!=null && i<index){
45+
tmp = tmp.next;
46+
i++;
47+
}
48+
return tmp;
49+
}
50+
public Object remove(int index){
51+
--size;
52+
Node node = null;
53+
if(head == null){
54+
return null;
55+
}
56+
Node tmp = head;
57+
int i = 0;
58+
while(tmp.next!=null && i<index-1){
59+
tmp = tmp.next;
60+
i++;
61+
}
62+
node = tmp.next;
63+
tmp.next = node.next;
64+
65+
return node;
66+
}
67+
68+
public int size(){
69+
return size;
70+
}
71+
72+
public void addFirst(Object o){
73+
++size;
74+
Node node = new Node(o);
75+
node.next = head;
76+
head = node;
77+
}
78+
public void addLast(Object o){
79+
add(o);
80+
}
81+
public Object removeFirst(){
82+
--size;
83+
if(head == null){
84+
return null;
85+
}
86+
Node tmp = head;
87+
head = head.next;
88+
return tmp;
89+
}
90+
public Object removeLast(){
91+
--size;
92+
Node tmp = head;
93+
Node node = null;
94+
while(tmp.next!=null){
95+
node = tmp;
96+
tmp = tmp.next;
97+
}
98+
99+
node.next = null;
100+
return tmp;
101+
}
102+
public Iterator iterator(){
103+
return new ArrayIterator(this);
104+
}
105+
106+
107+
private static class Node{
108+
Object data;
109+
Node next;
110+
public Node(Object data){
111+
this.data = data;
112+
}
113+
}
114+
}
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+
}

0 commit comments

Comments
 (0)