Skip to content

Commit 70a5b24

Browse files
authored
Merge pull request onlyliuxin#17 from lralin/master
the first homework
2 parents 275876f + 276d8d1 commit 70a5b24

File tree

7 files changed

+354
-0
lines changed

7 files changed

+354
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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[7];
10+
11+
public void add(Object o){
12+
if(size>elementData.length-1){
13+
ensureCapacity(size);
14+
}
15+
elementData[size++] = o;
16+
}
17+
18+
public void add(int index, Object o){
19+
System.out.println(elementData.length+" length");
20+
System.out.println(size+" size");
21+
size++;
22+
if(index<0||index>size||index>Integer.MAX_VALUE){
23+
System.out.println("add 位置输入错误,请输入合理的位置");
24+
return;
25+
}
26+
if(size>elementData.length-1){
27+
ensureCapacity(size);
28+
}
29+
System.arraycopy(elementData,index,elementData,index+1,size-index-1);
30+
elementData[index] = o;
31+
}
32+
33+
public Object get(int index){
34+
if(index<0||index>size-1){
35+
System.out.println("get 位置输入错误,请输入合理的位置");
36+
return null;
37+
}
38+
39+
return elementData[index];
40+
}
41+
42+
public Object remove(int index){
43+
if(index<0||index>size-1){
44+
System.out.println("remove 位置输入错误,请输入合理的位置");
45+
return false;
46+
}
47+
System.arraycopy(elementData,index+1,elementData,index,size-index-1);
48+
elementData[--size]=null;
49+
return true;
50+
}
51+
52+
public int size(){
53+
return size;
54+
}
55+
56+
private void ensureCapacity(int nimCapacity){
57+
int oldCapacity = elementData.length;
58+
int newCapacity = oldCapacity+(oldCapacity/2+1);
59+
if(newCapacity < nimCapacity){
60+
newCapacity = nimCapacity;
61+
}
62+
if(newCapacity>Integer.MAX_VALUE){
63+
newCapacity = Integer.MAX_VALUE;
64+
}
65+
elementData = Arrays.copyOf(elementData,newCapacity);
66+
}
67+
68+
public static void main(String[] args) {
69+
ArrayList list=new ArrayList();
70+
71+
list.add(1);
72+
list.add(2);
73+
list.add(3);
74+
list.add(4);
75+
list.add(2,10);
76+
list.remove(3);
77+
for(int i=0;i<list.size();i++){
78+
System.out.println(list.get(i));
79+
}
80+
//System.out.println("temp"+list.toString());
81+
82+
//int x=2;
83+
//String[] l = {"a","d","v","cd","s"};
84+
//System.out.println(l[x--]);
85+
}
86+
87+
}
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: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
package com.coding.basic;
2+
3+
public class LinkedList implements List {
4+
5+
private Node head;
6+
7+
public void add(Object o){
8+
addFirst(o);
9+
}
10+
public void add(int index , Object o){
11+
Node node = head;
12+
for(int i=0;i<index;i++){
13+
node = node.next;
14+
}
15+
16+
Node newNode=new Node();
17+
newNode.data=o;
18+
newNode.next=node;
19+
add2Index(head,index,newNode);
20+
21+
}
22+
private int count=0;
23+
private void add2Index(Node node,int index,Node nextNode){
24+
count++;
25+
if(index==count){
26+
node.next=nextNode;
27+
return;
28+
}
29+
add2Index(node.next,index,nextNode);
30+
}
31+
32+
public Object get(int index){
33+
Node node = head;
34+
for(int i=0;i<index;i++){
35+
if(node.next==null){
36+
System.out.println("位置输入错误");
37+
break;
38+
}
39+
node = node.next;
40+
}
41+
return node.data;
42+
}
43+
public Object remove(int index){
44+
return null;
45+
}
46+
47+
public int size(){
48+
int count=0;
49+
50+
return count;
51+
}
52+
53+
54+
55+
56+
57+
public void addFirst(Object o){
58+
Node newNode=new Node();
59+
newNode.data=o;
60+
newNode.next=head;
61+
head=newNode;
62+
}
63+
public void addLast(Object o){
64+
Node newNode=new Node();
65+
newNode.data=o;
66+
if(head==null){
67+
head=newNode;
68+
}else{
69+
lastElement(head,o);
70+
}
71+
72+
}
73+
74+
private void lastElement(Node node,Object o){
75+
if(node.next==null){
76+
Node newNode=new Node();
77+
newNode.data=o;
78+
node.next=newNode;
79+
return;
80+
}
81+
lastElement(node.next,o);
82+
}
83+
84+
public Object removeFirst(){
85+
if(head==null){
86+
System.out.println("数据为空,不用删除");
87+
return false;
88+
}
89+
head = head.next;
90+
return true;
91+
}
92+
public Object removeLast(){
93+
removeLastNode(head);
94+
return true;
95+
}
96+
97+
private void removeLastNode(Node node){
98+
if(node.next==null){
99+
node.data = null;
100+
return;
101+
}
102+
removeLastNode(node.next);
103+
}
104+
105+
public Iterator iterator(){
106+
return new LinkedListIterator(this);
107+
}
108+
private class LinkedListIterator implements Iterator{
109+
private LinkedList list = null;
110+
private Node node=null;
111+
private LinkedListIterator(LinkedList l){
112+
this.list = l;
113+
this.node = head;
114+
}
115+
@Override
116+
public boolean hasNext() {
117+
if(node.next==null){
118+
return false;
119+
}
120+
node = node.next;
121+
return true;
122+
}
123+
124+
@Override
125+
public Object next() {
126+
return node.data;
127+
}
128+
}
129+
130+
131+
private static class Node{
132+
Object data;
133+
Node next;
134+
}
135+
136+
public static void main(String[] args) {
137+
LinkedList list = new LinkedList();
138+
list.addFirst(1);
139+
list.addFirst(2);
140+
list.addFirst(3);
141+
list.addFirst(4);
142+
list.addLast(5);
143+
list.removeLast();
144+
System.out.println(list.size());
145+
//list.add(3,10);
146+
//System.out.println(list.get(4));
147+
Iterator i=list.iterator();
148+
while(i.hasNext()){
149+
System.out.println(i.next());
150+
}
151+
}
152+
}
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: 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 Queue {
4+
private int size=0;
5+
6+
private ArrayList list = new ArrayList();
7+
8+
public void enQueue(Object o){
9+
list.add(o);
10+
size++;
11+
}
12+
13+
public Object deQueue(){
14+
if(size<=0){
15+
System.out.println("队列为空");
16+
return null;
17+
}
18+
size--;
19+
Object obj = list.get(0);
20+
list.remove(0);
21+
return obj;
22+
}
23+
24+
public boolean isEmpty(){
25+
if(size==0){
26+
return true;
27+
}
28+
return false;
29+
}
30+
31+
public int size(){
32+
return size;
33+
}
34+
35+
public static void main(String[] args) {
36+
Queue q=new Queue();
37+
q.enQueue(1);
38+
q.enQueue(2);
39+
q.enQueue(3);
40+
q.enQueue(4);
41+
System.out.println(q.deQueue());
42+
System.out.println(q.deQueue());
43+
}
44+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.coding.basic;
2+
3+
public class Stack {
4+
private ArrayList elementData = new ArrayList();
5+
6+
public void push(Object o){
7+
8+
}
9+
10+
public Object pop(){
11+
return null;
12+
}
13+
14+
public Object peek(){
15+
return null;
16+
}
17+
public boolean isEmpty(){
18+
return false;
19+
}
20+
public int size(){
21+
return -1;
22+
}
23+
}

0 commit comments

Comments
 (0)