Skip to content

Commit 5be5c11

Browse files
committed
to be test
1 parent d4aad3d commit 5be5c11

File tree

4 files changed

+108
-31
lines changed

4 files changed

+108
-31
lines changed

group12/247565311/week1/ArrayList.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public boolean add(E arg0) {
3636

3737
@Override
3838
public void add(int arg0, E arg1) {
39-
if(arg1 == null || arg0>size+1 || 0>arg0) return ;
39+
if( arg0>size || 0<arg0) return ;
4040
size += 1;
4141
int leng = data.length;
4242
if(size>leng){
@@ -134,7 +134,7 @@ public int indexOf(Object arg0) {
134134

135135
@Override
136136
public boolean isEmpty() {
137-
return this.size==0?true:false;
137+
return this.size==0;
138138
}
139139
@Override
140140
public int lastIndexOf(Object arg0) {

group12/247565311/week1/Deque.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,18 @@ public Deque(int arg0){
1111
data = new LinkedList<E>(arg0);
1212
}
1313
public boolean push(E arg0){
14-
data.add(arg0);
14+
data.add(data.size(),arg0);
1515
size += 1;
1616
return true;
1717
}
1818
public E pop(){
1919
size -= 1;
20-
E res = data.get(size);
21-
data.remove(size);
20+
E res = data.get(0);
21+
data.remove(0);
2222
return res;
2323
}
2424
public E peek(){
25-
return data.get(size-1);
25+
return data.get(0);
2626
}
2727
public int size(){
2828
return this.size;

group12/247565311/week1/LinkedList.java

Lines changed: 86 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import java.util.List;
66
import java.util.ListIterator;
77

8-
public class LinkedList<E> implements List<E> {
8+
public class LinkedList<E> implements List<E>,Cloneable {
99
private Node head = null;
1010
private Node tail = null;
1111
private int size = 0;
@@ -24,9 +24,24 @@ public LinkedList(int arg0){
2424
tail.ahead = head;
2525
size = 0;
2626
}
27+
public Object clone(){
28+
LinkedList<E> clone = null;
29+
try {
30+
clone = (LinkedList<E>)(super.clone());
31+
} catch (CloneNotSupportedException e) {
32+
e.printStackTrace();
33+
}
34+
clone.head = new Node(null);
35+
clone.tail = new Node(null);
36+
clone.size = 0;
37+
for(Node x = head.next;x!=null;x = x.next){
38+
clone.add(x.val);
39+
}
40+
return clone;
41+
}
2742
@Override
28-
public boolean add(E arg0) {
29-
Node n = new Node(arg0);
43+
public boolean add(Object val) {
44+
Node n = new Node(val);
3045
n.next = tail;
3146
n.ahead = tail.ahead;
3247
tail.ahead.next = n;
@@ -37,7 +52,7 @@ public boolean add(E arg0) {
3752

3853
@Override
3954
public void add(int arg0, E arg1) {
40-
if(arg0<0) arg0=0;
55+
if(arg0<0 || arg0>size) arg0=0;
4156
Node n=new Node(arg1),p=head;
4257
for(int i=0;i<arg0;i++){
4358
p = p.next;
@@ -102,21 +117,33 @@ public boolean containsAll(Collection<?> arg0) {
102117
public E get(int arg0) {
103118
E res = null;
104119
if(arg0>-1 && arg0 < size){
105-
120+
Node n = head;
121+
for(int i=0;i<arg0;i++){
122+
n = n.next;
123+
}
124+
res = (E) n.val;
106125
}
107126
return res;
108127
}
109128

110129
@Override
111130
public int indexOf(Object arg0) {
112-
113-
return 0;
131+
boolean flag = arg0 == null;
132+
Node n=head;
133+
for(int i=0;i<size;i++){
134+
n = n.next;
135+
if(flag){
136+
if(n.val == null) return i;
137+
}else{
138+
if(arg0.equals(n.val)) return i;
139+
}
140+
}
141+
return -1;
114142
}
115143

116144
@Override
117145
public boolean isEmpty() {
118-
119-
return false;
146+
return size==0;
120147
}
121148

122149
@Override
@@ -127,8 +154,17 @@ public Iterator<E> iterator() {
127154

128155
@Override
129156
public int lastIndexOf(Object arg0) {
130-
131-
return 0;
157+
boolean flag = arg0==null;
158+
Node n = tail;
159+
for(int i=size-1;i>-1;i--){
160+
n = n.ahead;
161+
if(flag){
162+
if(n.val == null) return i;
163+
}else{
164+
if(arg0.equals(n.val)) return i;
165+
}
166+
}
167+
return -1;
132168
}
133169

134170
@Override
@@ -145,38 +181,59 @@ public ListIterator<E> listIterator(int arg0) {
145181

146182
@Override
147183
public boolean remove(Object arg0) {
148-
149-
return false;
184+
Node n = head;
185+
int index = this.indexOf(arg0);
186+
if(index == -1) return false;
187+
for(int i=0;i<index;i++){
188+
n = n.next;
189+
}
190+
Node d = n.next;
191+
n.next = d.next;
192+
d.next.ahead = n;
193+
return true;
150194
}
151195

152196
@Override
153197
public E remove(int arg0) {
154-
155-
return null;
198+
Node n = head;
199+
if(arg0 <0 || arg0>size-1) return null;
200+
for(int i=0;i<arg0;i++){
201+
n = n.next;
202+
}
203+
Node d = n.next;
204+
n.next = d.next;
205+
d.next.ahead = n;
206+
return (E)(d.val);
156207
}
157208

158209
@Override
159210
public boolean removeAll(Collection<?> arg0) {
160-
161-
return false;
211+
for(Object o:arg0){
212+
if(!this.remove(o)) return false;
213+
}
214+
return true;
162215
}
163216

164217
@Override
165218
public boolean retainAll(Collection<?> arg0) {
166-
219+
// ?
167220
return false;
168221
}
169222

170223
@Override
171224
public E set(int arg0, E arg1) {
172-
173-
return null;
225+
if(arg0<0 || arg0>size-1) return null;
226+
Node n=head;
227+
for(int i=0;i<arg0;i++){
228+
n = n.next;
229+
}
230+
n.next.val = arg1;
231+
return (E)(n.next.val);
174232
}
175233

176234
@Override
177235
public int size() {
178-
179-
return 0;
236+
return size;
180237
}
181238

182239
@Override
@@ -187,8 +244,13 @@ public List<E> subList(int arg0, int arg1) {
187244

188245
@Override
189246
public Object[] toArray() {
190-
191-
return null;
247+
Object[]res = new Object[size];
248+
Node n = head;
249+
for(int i=0;i<size;i++){
250+
n = n.next;
251+
res[i] = n.val; // if we change res[],will this list be changed?
252+
}
253+
return res;
192254
}
193255

194256
@Override

group12/247565311/week1/Stack.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,24 @@ public Stack(int arg0){
1616
data = new ArrayList<E>(size);
1717

1818
}
19+
public boolean isEmpty(){
20+
return size==0;
21+
}
1922
public boolean push(E arg0){
2023
size += 1;
2124
data.add(arg0);
25+
return true;
26+
}
27+
public E pop(){
28+
if(this.isEmpty()) return null;
29+
size -= 1;
30+
E res = data.get(size);
31+
data.remove(size);
32+
return res;
33+
}
34+
public E peek(){
35+
if(this.isEmpty()) return null;
36+
E res = data.get(size-1);
37+
return res;
2238
}
23-
public E pop()
2439
}

0 commit comments

Comments
 (0)