Skip to content

Commit f88a48f

Browse files
authored
Merge pull request onlyliuxin#4 from songyizhang/master
first commit
2 parents 29f0e0d + d7f0ba3 commit f88a48f

File tree

8 files changed

+292
-1
lines changed

8 files changed

+292
-1
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
public class ArrayList implements List {
2+
3+
private int size = 0;
4+
5+
private Object[] elementData = new Object[5];
6+
7+
public void add(Object o) {
8+
if (size >= elementData.length) {
9+
resize(2 * size);
10+
}
11+
elementData[size] = o;
12+
size++;
13+
}
14+
15+
public void add(int index, Object o) {
16+
if (index > size) {
17+
throw new IndexOutOfBoundsException("Index: " + index + ", Size: "
18+
+ size);
19+
}
20+
if (size >= elementData.length) {
21+
resize(2 * size);
22+
}
23+
for (int i = size; i > index; i--) {
24+
elementData[i] = elementData[i - 1];
25+
}
26+
elementData[index] = o;
27+
size++;
28+
}
29+
30+
public Object get(int index) {
31+
if (index >= size) {
32+
throw new IndexOutOfBoundsException("Index: " + index + ", Size: "
33+
+ size);
34+
}
35+
return elementData[index];
36+
}
37+
38+
public Object remove(int index) {
39+
Object o = elementData[index];
40+
for (int i = index; i < size - 1; i++) {
41+
elementData[i] = elementData[i + 1];
42+
}
43+
elementData[size - 1] = null;
44+
size--;
45+
return o;
46+
}
47+
48+
public int size() {
49+
return size;
50+
}
51+
52+
public Iterator iterator() {
53+
return null;
54+
}
55+
56+
private void resize(int n) {
57+
Object[] temp = elementData;
58+
elementData = new Object[n];
59+
for (int i = 0; i < temp.length; i++) {
60+
elementData[i] = temp[i];
61+
}
62+
}
63+
64+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
public class BinaryTreeNode {
3+
4+
private Object data;
5+
private BinaryTreeNode left;
6+
private BinaryTreeNode right;
7+
8+
public Object getData() {
9+
return data;
10+
}
11+
public void setData(Object data) {
12+
this.data = data;
13+
}
14+
public BinaryTreeNode getLeft() {
15+
return left;
16+
}
17+
public void setLeft(BinaryTreeNode left) {
18+
this.left = left;
19+
}
20+
public BinaryTreeNode getRight() {
21+
return right;
22+
}
23+
public void setRight(BinaryTreeNode right) {
24+
this.right = right;
25+
}
26+
27+
public BinaryTreeNode insert(Object o){
28+
return null;
29+
}
30+
31+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
public interface Iterator {
3+
public boolean hasNext();
4+
public Object next();
5+
6+
}
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
public class LinkedList implements List {
2+
public static void main(String[] args) {
3+
LinkedList linkedList = new LinkedList();
4+
linkedList.add(0);
5+
6+
System.out.println(linkedList.get(0));
7+
8+
}
9+
10+
private Node first;
11+
12+
private Node last;
13+
14+
private int size = 0;
15+
16+
public void add(Object o) {
17+
Node oldLast = last;
18+
last = new Node();
19+
last.data = o;
20+
last.next = null;
21+
if (oldLast != null) {
22+
oldLast.next = last;
23+
}
24+
if (first == null) {
25+
first = last;
26+
}
27+
size++;
28+
}
29+
30+
public void add(int index, Object o) {
31+
if (index > size) {
32+
throw new IndexOutOfBoundsException("Index: " + index + ", Size: "
33+
+ size);
34+
}
35+
if (index == 0) {
36+
addFirst(o);
37+
return;
38+
}
39+
if (index == size) {
40+
addLast(o);
41+
return;
42+
}
43+
Node curserNode = cursor(index - 1);
44+
Node newNode = new Node();
45+
newNode.data = o;
46+
newNode.next = curserNode.next;
47+
curserNode.next = newNode;
48+
size++;
49+
}
50+
51+
public Object get(int index) {
52+
return cursor(index).data;
53+
}
54+
55+
public Object remove(int index) {
56+
Node node = cursor(index - 1).next;
57+
cursor(index - 1).next = node.next;
58+
node.next = null;
59+
return node.data;
60+
}
61+
62+
public int size() {
63+
return size;
64+
}
65+
66+
public void addFirst(Object o) {
67+
Node newNode = new Node();
68+
newNode.data = o;
69+
if (first == null) {
70+
first = newNode;
71+
} else {
72+
newNode.next = first;
73+
first = newNode;
74+
}
75+
if (last == null) {
76+
last = first;
77+
}
78+
size++;
79+
}
80+
81+
public void addLast(Object o) {
82+
Node newNode = new Node();
83+
newNode.data = o;
84+
if (last == null) {
85+
last = newNode;
86+
} else {
87+
last.next = newNode;
88+
last = newNode;
89+
}
90+
if (first == null) {
91+
first = last;
92+
}
93+
size++;
94+
}
95+
96+
public Object removeFirst() {
97+
Node node = first;
98+
Node newFirst = first.next;
99+
first.next = null;
100+
first = newFirst;
101+
size--;
102+
return node.data;
103+
}
104+
105+
public Object removeLast() {
106+
Node node = last;
107+
Node newLast = cursor(size - 1);
108+
newLast.next = null;
109+
last = newLast;
110+
size--;
111+
return node.data;
112+
}
113+
114+
public Iterator iterator() {
115+
return null;
116+
}
117+
118+
private Node cursor(int index) {
119+
Node curserNode = first;
120+
for (int i = 0; i < index; i++) {
121+
curserNode = curserNode.next;
122+
}
123+
return curserNode;
124+
}
125+
126+
private static class Node {
127+
Object data;
128+
Node next;
129+
130+
}
131+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
public interface List {
3+
public void add(Object o);
4+
public void add(int index, Object o);
5+
public Object get(int index);
6+
public Object remove(int index);
7+
public int size();
8+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
public class Queue {
3+
LinkedList elementData = new LinkedList();
4+
5+
public void enQueue(Object o) {
6+
elementData.add(o);
7+
}
8+
9+
public Object deQueue() {
10+
if (elementData.size() == 0) {
11+
12+
}
13+
return elementData.removeFirst();
14+
}
15+
16+
public boolean isEmpty() {
17+
return elementData.size() == 0;
18+
}
19+
20+
public int size() {
21+
return elementData.size();
22+
}
23+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import java.util.EmptyStackException;
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 (elementData.size() == 0) {
12+
throw new EmptyStackException();
13+
}
14+
return elementData.remove(elementData.size() - 1);
15+
}
16+
17+
public Object peek() {
18+
return elementData.get(elementData.size() - 1);
19+
}
20+
21+
public boolean isEmpty() {
22+
return elementData.size() == 0;
23+
}
24+
25+
public int size() {
26+
return elementData.size();
27+
}
28+
}

group17/article/写一篇文章介绍cpu, 内存, 磁盘, 指令以及他们之间的关系_20170226.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
865797761
3838

39-
1540186032
39+
1540186032 http://blog.csdn.net/mpx_xb/article/details/56679603
4040

4141
176653813
4242

0 commit comments

Comments
 (0)