Skip to content

Commit d7a0caf

Browse files
author
Rong Huang
authored
Merge pull request onlyliuxin#26 from orajavac/master
20170224_1027_向组长提交代码
2 parents 7f0db0b + d54fe1e commit d7a0caf

File tree

7 files changed

+342
-0
lines changed

7 files changed

+342
-0
lines changed
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
package com.github.orajavac.coding2017.basic;
2+
3+
public class ArrayList implements List,Iterator{
4+
5+
private int size = 0;
6+
7+
private int i=0;
8+
9+
private Object[] elementData = new Object[2];
10+
11+
//SS
12+
public void add(Object o){
13+
size=size();
14+
if (size == elementData.length)
15+
grow(elementData,size);
16+
elementData[size]=o;
17+
}
18+
public void add(int index, Object o){
19+
Object old=elementData[index]; //[3] old value=c
20+
size=size();
21+
size+=1;
22+
if (size>elementData.length)
23+
grow(elementData,size);
24+
Object temp = null;
25+
int len=elementData.length;
26+
for (int i=0;i<len;i++){
27+
if (i==index){
28+
elementData[index]=o;
29+
}else if(i>index){
30+
temp=elementData[i];
31+
elementData[i]=old; //[4]=c
32+
old=temp;
33+
}
34+
}
35+
}
36+
37+
public Object get(int index){
38+
return elementData[index];
39+
}
40+
41+
public Object remove(int index){
42+
if (index==elementData.length-1){ //删除最后一个索引元素里的值
43+
elementData[index]=null;
44+
}else{
45+
elementData[index]=null;
46+
int len=elementData.length;
47+
for (int i=0;i<len;i++){
48+
if (i==index){
49+
elementData[i]=elementData[i+1];
50+
}else if(i>index){
51+
if(i+1!=len){
52+
elementData[i]=elementData[i+1];
53+
}else{ //我们假设数组索引 0-3,那么数组长度是4,3+1==4,elementData[i+1]会报错
54+
elementData[i]=null;
55+
}
56+
}
57+
}
58+
}
59+
return null;
60+
}
61+
62+
public int size(){
63+
size=0;
64+
for (int i=0;i<elementData.length;i++){
65+
if (elementData[i]!=null){
66+
size++;
67+
}
68+
}
69+
return size;
70+
}
71+
72+
public void grow(Object[] elementData,int size){
73+
Object[] target = new Object[size+elementData.length];
74+
System.arraycopy(elementData, 0, target, 0, elementData.length);
75+
this.elementData=target;
76+
}
77+
78+
public Iterator iterator(){
79+
ArrayList l = new ArrayList();
80+
l.elementData=this.elementData;
81+
l.size=this.size();
82+
return l;
83+
}
84+
85+
86+
87+
public boolean hasNext(){
88+
if (i<=size-1){
89+
return true;
90+
}else{
91+
i=0;
92+
}
93+
return false;
94+
}
95+
96+
public Object next(){
97+
Object obj=elementData[i];
98+
i++;
99+
return obj;
100+
}
101+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.github.orajavac.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.orajavac.coding2017.basic;
2+
3+
public interface Iterator {
4+
public boolean hasNext();
5+
public Object next();
6+
7+
}
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
package com.github.orajavac.coding2017.basic;
2+
3+
public class LinkedList implements List,Iterator {
4+
5+
private Node head;
6+
7+
private Node current;
8+
9+
private int size=0;
10+
11+
public void add(Object o){
12+
Node n = new Node();
13+
n.next=this.head;
14+
n.data=o;
15+
this.head=n;
16+
}
17+
public void add(int index , Object o){
18+
19+
}
20+
public Object get(int index){
21+
Node c = this.head;
22+
int i=0;
23+
while(c!=null){
24+
i++;
25+
if (index==i){
26+
return c.data;
27+
}
28+
c=c.next;
29+
}
30+
return null;
31+
}
32+
public Object remove(int index){
33+
return null;
34+
}
35+
36+
public int size(){
37+
size=0;
38+
Node c = this.head;
39+
while(c!=null){
40+
size++;
41+
c=c.next;
42+
}
43+
return size;
44+
}
45+
46+
public void addFirst(Object o){
47+
if (this.head==null){
48+
this.head = new Node();
49+
this.head.data=o;
50+
}
51+
}
52+
public void addLast(Object o){
53+
add(o);
54+
}
55+
public Object removeFirst(){
56+
int s=size();
57+
int index=0;
58+
Node c = this.head;
59+
while(c!=null){
60+
index=s--;
61+
if (index==2){
62+
System.out.println(c.next.data);
63+
64+
break;
65+
}
66+
c=c.next;
67+
}
68+
return null;
69+
}
70+
public Object removeLast(){
71+
Node e = this.head.next;
72+
this.head=null;
73+
this.head=e;
74+
return null;
75+
}
76+
77+
public void listNode(){
78+
Node c = this.head;
79+
while(c!=null){
80+
System.out.print(c.data+ " -> ");
81+
c=c.next;
82+
}
83+
System.out.println();
84+
}
85+
public Iterator iterator(){
86+
LinkedList l = new LinkedList();
87+
l.head=this.head;
88+
return l;
89+
}
90+
91+
public boolean hasNext(){
92+
current = head;
93+
if (current!=null){
94+
head = current.next;
95+
return true;
96+
}
97+
return false;
98+
}
99+
100+
public Object next(){
101+
return current.data;
102+
}
103+
104+
105+
private static class Node{
106+
Object data;
107+
Node next;
108+
109+
}
110+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.github.orajavac.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: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.github.orajavac.coding2017.basic;
2+
3+
public class Queue {
4+
5+
private ArrayList elementData = new ArrayList();
6+
7+
public void enQueue(Object o){
8+
elementData.add(o);
9+
}
10+
11+
public Object deQueue(){
12+
Object obj = elementData.get(0);
13+
elementData.remove(0);
14+
return obj;
15+
}
16+
17+
public ArrayList getElementData() {
18+
return elementData;
19+
}
20+
21+
public void setElementData(ArrayList elementData) {
22+
this.elementData = elementData;
23+
}
24+
25+
public boolean isEmpty(){
26+
if (elementData.size()>0)
27+
return true;
28+
return false;
29+
}
30+
31+
public int size(){
32+
return elementData.size();
33+
}
34+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.github.orajavac.coding2017.basic;
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+
int s=elementData.size();
12+
Object obj = null;
13+
for (int i=s-1;i>=0;i--){
14+
if(elementData.get(i)!=null){
15+
obj = elementData.get(i);
16+
elementData.remove(i);
17+
break;
18+
}
19+
}
20+
return obj;
21+
}
22+
23+
public Object peek(){
24+
int s=elementData.size();
25+
Object obj = null;
26+
for (int i=s-1;i>=0;i--){
27+
if(elementData.get(i)!=null){
28+
obj = elementData.get(i);
29+
break;
30+
}
31+
}
32+
return obj;
33+
}
34+
public boolean isEmpty(){
35+
if (elementData.size()>0)
36+
return true;
37+
return false;
38+
}
39+
public int size(){
40+
return elementData.size();
41+
}
42+
public ArrayList getElementData() {
43+
return elementData;
44+
}
45+
46+
public void setElementData(ArrayList elementData) {
47+
this.elementData = elementData;
48+
}
49+
}

0 commit comments

Comments
 (0)