Skip to content

Commit a0ce5b7

Browse files
committed
algorithms lesson #6 update
1 parent 9ceb701 commit a0ce5b7

2 files changed

Lines changed: 23 additions & 14 deletions

File tree

BerlinTelran/Algorithms/src/lesson6/DynamicArray.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,26 +23,29 @@ public int get(int idx) {
2323
}
2424

2525
public void add(int value) {
26-
if (size < array.length) {
27-
array[size] = value;
28-
size++;
29-
} else {
30-
int[] extArray = new int[array.length * 2];
31-
System.arraycopy(array, 0, extArray, 0, array.length);
32-
array = extArray;
33-
array[size] = value;
34-
size++;
35-
}
26+
expandArrayIfNeed();
27+
array[size] = value;
28+
size++;
3629
}
3730

3831
public void add(int idx, int value) {
39-
// TODO you have to control array's capacity
32+
expandArrayIfNeed();
4033
System.arraycopy(array, idx, array, idx + 1, array.length - idx - 1);
4134
array[idx] = value;
4235
size++;
4336
}
4437

38+
private void expandArrayIfNeed() {
39+
if (size == array.length) {
40+
int[] extArray = new int[array.length * 2];
41+
System.arraycopy(array, 0, extArray, 0, array.length);
42+
array = extArray;
43+
//System.out.println("Array size *2 = " + array.length);
44+
}
45+
}
46+
4547
public void remove(int idx) {
48+
// TODO check size array
4649
System.arraycopy(array, idx + 1, array, idx, array.length - idx - 1);
4750
size--;
4851
}

BerlinTelran/Algorithms/src/lesson6/Lesson6.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,18 @@ public static void main(String[] args) {
1515
da.add(12);
1616
da.add(3);
1717
da.add(-1);
18-
da.add(7);
19-
da.add(13);
2018
System.out.println(da);
19+
//da.add(7);
20+
//da.add(13);
21+
//System.out.println(da);
2122
da.add(2, -5);
2223
System.out.println(da);
23-
da.remove(3);
24+
//da.remove(3);
25+
da.add(8);
26+
da.add(4);
27+
da.add(12);
28+
da.add(3);
29+
da.add(-1);
2430
System.out.println(da);
2531
}
2632
}

0 commit comments

Comments
 (0)