Skip to content

Commit 089326e

Browse files
committed
Merge branch 'master' of https://github.com/jodie-zss/coding2017
2 parents 228779c + 6a296a6 commit 089326e

File tree

15 files changed

+1126
-0
lines changed

15 files changed

+1126
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry kind="src" path="src"/>
4+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
5+
<classpathentry kind="output" path="bin"/>
6+
</classpath>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/bin/
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>1506_1084478979</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.jdt.core.javabuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
</buildSpec>
14+
<natures>
15+
<nature>org.eclipse.jdt.core.javanature</nature>
16+
</natures>
17+
</projectDescription>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
eclipse.preferences.version=1
2+
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3+
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
4+
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
5+
org.eclipse.jdt.core.compiler.compliance=1.8
6+
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
7+
org.eclipse.jdt.core.compiler.debug.localVariable=generate
8+
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
9+
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
10+
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
11+
org.eclipse.jdt.core.compiler.source=1.8
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package banshee;
2+
3+
import java.util.Arrays;
4+
public class ArrayList {
5+
6+
private int size = 0;
7+
8+
private Object[] elementData = new Object[100];
9+
10+
public void add(Object o){
11+
ensureCapacity(size + 1);
12+
elementData[size++] = o;
13+
}
14+
public void add(int index, Object o){
15+
rangeCheck(index);
16+
ensureCapacity(size+1);
17+
System.arraycopy(elementData, index, elementData, index + 1,
18+
size - index);
19+
elementData[index] = o;
20+
size++;
21+
}
22+
23+
public Object get(int index){
24+
rangeCheck(index);
25+
return elementData[index];
26+
}
27+
28+
public Object remove(int index){
29+
rangeCheck(index);
30+
Object oldValue = elementData[index];
31+
int numMoved = size - index - 1;
32+
if (numMoved > 0)
33+
System.arraycopy(elementData, index + 1, elementData, index,
34+
numMoved);
35+
elementData[--size] = null;
36+
return oldValue;
37+
}
38+
39+
public int size(){
40+
return -1;
41+
}
42+
43+
public Iterator iterator(){
44+
//TODO
45+
//不会。。。
46+
return null;
47+
}
48+
49+
50+
private void rangeCheck( int index) {
51+
if (index >= size || index < 0){
52+
throw new IndexOutOfBoundsException("指定的index超过界限");
53+
}
54+
}
55+
56+
57+
public void ensureCapacity(int minCapacity) {
58+
int oldCapacity = elementData.length;
59+
if (minCapacity > oldCapacity) {
60+
//计算新的容量大小,为当前容量的1.5倍
61+
int newCapacity = (oldCapacity * 3) / 2 + 1;
62+
if (newCapacity < minCapacity)
63+
newCapacity = minCapacity;
64+
elementData = Arrays.copyOf(elementData, newCapacity);
65+
}
66+
}
67+
68+
}
69+
70+
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
package banshee;
2+
3+
import java.util.NoSuchElementException;
4+
5+
public class LinkedList implements List {
6+
7+
private Node head;
8+
private Node last;
9+
private int size = 0;
10+
11+
public void add(Object o){
12+
addAtLast(o);
13+
}
14+
public void add(int index , Object o){
15+
rangeCheck(index);
16+
if (index == size) {
17+
addAtLast(o);
18+
}else{
19+
linkBrfore(o, node(index));
20+
}
21+
}
22+
public Object get(int index){
23+
rangeCheck(index);
24+
return node(index);
25+
}
26+
public Object remove(int index){
27+
Node e = node(index);
28+
remove(e);
29+
return null;
30+
}
31+
32+
public int size(){
33+
return size;
34+
}
35+
36+
public void addFirst(Object o){
37+
final Node h = head ;
38+
final Node newNode = new Node(null, o, h);
39+
if (h == null) {
40+
last = newNode;
41+
}else{
42+
h.prev = newNode;
43+
}
44+
size++;
45+
}
46+
public void addLast(Object o){
47+
addAtLast(o);
48+
}
49+
public Object removeFirst(){
50+
final Node h = head;
51+
final Object e = h.data;
52+
Node next = h.next;
53+
h.data = null;
54+
h.next = null;
55+
head = next;
56+
if (next == null)
57+
last = null;
58+
else
59+
next.prev = null;
60+
size--;
61+
return e;
62+
}
63+
public Object removeLast(){
64+
final Node l = last;
65+
final Object e = l.data;
66+
Node newL = l.prev;
67+
l.data = null;
68+
l.prev = null;
69+
last = newL;
70+
if (newL == null)
71+
head = null;
72+
else
73+
newL.next = null;
74+
size--;
75+
return e;
76+
}
77+
public Iterator iterator(){
78+
//TODO
79+
//²»»á...
80+
return null;
81+
}
82+
83+
84+
private static class Node{
85+
Object data;
86+
Node next;
87+
Node prev;
88+
89+
Node(Node prev, Object element,Node next){
90+
this.data = element ;
91+
this.next = next;
92+
this.prev = prev ;
93+
}
94+
}
95+
96+
private void addAtLast(Object element){
97+
Node l = last;
98+
Node newLink = new Node(l, element, null);
99+
last = newLink;
100+
if (l == null) {
101+
head = newLink;
102+
}else {
103+
l.next = newLink;
104+
}
105+
size++;
106+
}
107+
108+
private void linkBrfore(Object element , Node spNode ){
109+
final Node pred = spNode.prev;
110+
final Node newNode = new Node(pred, element, spNode);
111+
spNode.prev = newNode;
112+
if (pred == null) {
113+
head = newNode;
114+
}else{
115+
pred.next = newNode;
116+
}
117+
size++;
118+
}
119+
120+
private void rangeCheck(int index) {
121+
if (index > size || index < 0) {
122+
throw new IndexOutOfBoundsException("Ö¸¶¨µÄindex³¬¹ý½çÏÞ");
123+
}
124+
}
125+
126+
private Node node(int index) {
127+
if (index < (size >> 1)) {
128+
Node x = head;
129+
for (int i = 0; i < index; i++)
130+
x = x.next;
131+
return x;
132+
} else {
133+
Node x = last;
134+
for (int i = size - 1; i > index; i--)
135+
x = x.prev;
136+
return x;
137+
}
138+
}
139+
140+
private Object remove(Node e) {
141+
if (e == head )
142+
throw new NoSuchElementException();
143+
Object result = e. data;
144+
e. prev.next = e.next;
145+
e. next.prev = e.prev;
146+
e. next = e.prev = null;
147+
e. data = null;
148+
size--;
149+
return result;
150+
}
151+
152+
}
153+
154+
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package banshee;
2+
3+
public class Queue {
4+
private LinkedList elementData = new LinkedList();
5+
public void enQueue(Object o){
6+
elementData.add(o);
7+
}
8+
9+
public Object deQueue(){
10+
return elementData.removeFirst();
11+
}
12+
13+
public boolean isEmpty(){
14+
return elementData.size() == 0 ? true : false;
15+
}
16+
17+
public int size(){
18+
return elementData.size();
19+
}
20+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package banshee;
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+
return elementData.remove(elementData.size() - 1);
12+
}
13+
14+
public Object peek(){
15+
return elementData.get(elementData.size()-1);
16+
}
17+
public boolean isEmpty(){
18+
return elementData.size()==0?true:false;
19+
}
20+
public int size(){
21+
return elementData.size();
22+
}
23+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>RemoteSystemsTempFiles</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
</buildSpec>
9+
<natures>
10+
<nature>org.eclipse.rse.ui.remoteSystemsTempNature</nature>
11+
</natures>
12+
</projectDescription>

0 commit comments

Comments
 (0)