Skip to content

Commit b0fb337

Browse files
author
Rong Huang
authored
Merge pull request onlyliuxin#5 from hwjcc969/master
第一次作业
2 parents dfa4596 + 0b24942 commit b0fb337

File tree

7 files changed

+285
-0
lines changed

7 files changed

+285
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.github.hwjcc969.coding2017.basic;
2+
3+
import javax.lang.model.element.Element;
4+
5+
public class ArrayList implements List {
6+
7+
private int size = 0;
8+
9+
private Object[] elementData = new Object[100];
10+
11+
public void add(Object o){
12+
if (o == null){
13+
throw new NullPointerException("空对象");
14+
}
15+
if (size >= 100){
16+
throw new RuntimeException("越界");
17+
}
18+
elementData[size] = o;
19+
size++;
20+
}
21+
public void add(int index, Object o){
22+
if (o == null){
23+
throw new NullPointerException("空对象");
24+
}
25+
if (index >= 99){
26+
throw new RuntimeException("越界");
27+
}
28+
for (int i = size; i >= index; i--) {
29+
elementData[i + 1] = elementData[i];
30+
}
31+
elementData[index] = o;
32+
size++;
33+
}
34+
35+
public Object get(int index){
36+
if (index >= 100 || index < 0){
37+
throw new RuntimeException("越界");
38+
}
39+
return elementData[index];
40+
}
41+
42+
public Object remove(int index){
43+
if (index >= 100 || index < 0){
44+
throw new RuntimeException("越界");
45+
}
46+
Object o = elementData[index];
47+
for (int i = index; i < size - 1; i++) {
48+
elementData[i] = elementData[i + 1];
49+
}
50+
size--;
51+
return null;
52+
}
53+
54+
public int size(){
55+
return size;
56+
}
57+
58+
public Iterator iterator(){
59+
return null;
60+
}
61+
62+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.github.hwjcc969.coding2017.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.github.hwjcc969.coding2017.basic;
2+
3+
public interface Iterator {
4+
public boolean hasNext();
5+
public Object next();
6+
7+
}
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
package com.github.hwjcc969.coding2017.basic;
2+
3+
public class LinkedList implements List {
4+
5+
private Node head;
6+
private int size;
7+
8+
public void add(Object o){
9+
Node newNode = new Node(o);
10+
if (head == null) {
11+
head = newNode;
12+
}
13+
else{
14+
Node last = head.next;
15+
while (last != null){
16+
last = last.next;
17+
}
18+
last = newNode;
19+
}
20+
size++;
21+
22+
}
23+
public void add(int index , Object o){
24+
Node dummy = new Node();
25+
dummy.next = head;
26+
Node pre = dummy;
27+
while (index > 0) {
28+
pre = pre.next;
29+
}
30+
Node cur = new Node(o);
31+
cur.next = pre.next;
32+
pre.next = cur;
33+
size++;
34+
}
35+
public Object get(int index){
36+
Node cur = head;
37+
while (index > 0 && cur != null) {
38+
cur = cur.next;
39+
}
40+
return cur;
41+
}
42+
public Object remove(int index){
43+
Node dummy = new Node();
44+
dummy.next = head;
45+
Node pre = dummy;
46+
while (index > 0) {
47+
pre = pre.next;
48+
}
49+
Node cur = pre.next;
50+
Node next = pre.next.next;
51+
pre.next = next;
52+
size--;
53+
return cur;
54+
55+
}
56+
57+
public int size(){
58+
return size;
59+
}
60+
61+
public void addFirst(Object o){
62+
Node firstNode = new Node(o);
63+
firstNode.next = head;
64+
head = firstNode;
65+
}
66+
public void addLast(Object o){
67+
Node pre = new Node();
68+
while (pre.next != null){
69+
pre = pre.next;
70+
}
71+
Node lastNode = new Node(o);
72+
pre.next = lastNode;
73+
}
74+
public Object removeFirst(){
75+
Node dummy = new Node();
76+
dummy.next = head;
77+
dummy.next = head.next;
78+
return dummy.next;
79+
}
80+
public Object removeLast(){
81+
Node pre = new Node();
82+
while (pre.next.next != null) {
83+
pre = pre.next;
84+
}
85+
Node lastNode = pre.next.next;
86+
pre.next = null;
87+
return lastNode;
88+
89+
}
90+
public Iterator iterator(){
91+
return null;
92+
}
93+
94+
95+
private static class Node{
96+
public Node(Object o) {
97+
// TODO Auto-generated constructor stub
98+
}
99+
public Node() {
100+
// TODO Auto-generated constructor stub
101+
}
102+
Object data;
103+
Node next;
104+
105+
}
106+
107+
108+
public boolean isEmpty() {
109+
// TODO Auto-generated method stub
110+
if (size() == 0){
111+
return false;
112+
}
113+
return true;
114+
}
115+
116+
117+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.github.hwjcc969.coding2017.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: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.github.hwjcc969.coding2017.basic;
2+
3+
public class Queue {
4+
private LinkedList list = new LinkedList();
5+
public void enQueue(Object o){
6+
list.addLast(o);
7+
}
8+
9+
public Object deQueue(){
10+
if (!list.isEmpty()){
11+
return list.removeFirst();
12+
}
13+
return "空队列";
14+
15+
}
16+
17+
public boolean isEmpty(){
18+
if (list.size() == 0){
19+
return false;
20+
}
21+
return true;
22+
}
23+
24+
public int size(){
25+
return list.size();
26+
}
27+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.github.hwjcc969.coding2017.basic;
2+
3+
public class Stack {
4+
private ArrayList elementData = new ArrayList();
5+
private int size = 0;
6+
7+
public void push(Object o){
8+
if (elementData.size() <= 99)
9+
elementData.add(o);
10+
size++;
11+
12+
}
13+
14+
public Object pop(){
15+
size--;
16+
return elementData.remove(elementData.size() - 1);
17+
18+
}
19+
20+
public Object peek(){
21+
return elementData.get(elementData.size() - 1);
22+
}
23+
public boolean isEmpty(){
24+
if (size == 0)
25+
return false;
26+
return true;
27+
}
28+
public int size(){
29+
return size;
30+
}
31+
}

0 commit comments

Comments
 (0)