Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 33 additions & 4 deletions L3-oop/src/main/java/ru/track/list/MyArrayList.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,31 +11,60 @@
*/
public class MyArrayList extends List {

int data[];
int size = 0;
int capacity = 0;
final int DEFAULT_SIZE = 10;

public MyArrayList() {
this.data = new int[DEFAULT_SIZE];
this.capacity = DEFAULT_SIZE;

}

public MyArrayList(int capacity) {

this.data = new int[capacity];
this.capacity = capacity;
}

@Override
void add(int item) {
if (size >= capacity){
int newData[] = new int[capacity * 2 + 1];
System.arraycopy(data, 0, newData, 0, capacity);
capacity = capacity * 2 + 1;
data = newData;
}
data[size] = item;
size++;

}

@Override
int remove(int idx) throws NoSuchElementException {
return 0;
if (idx >= size || idx < 0){
throw new NoSuchElementException();
}

int deleted = data[idx];

for(int i = idx +1; i < size; i++){
data[i - 1] = data[i];
}
size--;
return deleted;
}

@Override
int get(int idx) throws NoSuchElementException {
return 0;
if (idx >= size || idx < 0){
throw new NoSuchElementException();
}
return data[idx];
}

@Override
int size() {
return 0;
return size;
}
}
60 changes: 57 additions & 3 deletions L3-oop/src/main/java/ru/track/list/MyLinkedList.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,22 +26,76 @@ private static class Node {
}
}

Node begin = null;
Node end = null;
int size = 0;

@Override
void add(int item) {
if (begin == null){
begin = new Node(null, null, item);
end = begin;
}
else{
Node newNode = new Node(end, null, item);
end.next = newNode;
end = end.next;
}
size++;

}

@Override
int remove(int idx) throws NoSuchElementException {
return 0;
if (idx >= size || idx < 0){
throw new NoSuchElementException();
}

Node currentNode = begin;
for (int i = 0; i < idx; i++){
currentNode = currentNode.next;
}

int deleted = currentNode.val;

if (currentNode != begin && currentNode != end){
currentNode.prev.next = currentNode.next;
currentNode.next.prev = currentNode.prev;
}

if (currentNode == begin){
begin = begin.next;
System.out.println(idx);
if (size == 1){
end = null;
}
}

else if (currentNode == end){
end = end.prev;
}


size--;
return deleted;
}

@Override
int get(int idx) throws NoSuchElementException {
return 0;
if (idx >= size || idx < 0){
throw new NoSuchElementException();
}

Node currentNode = begin;
for (int i = 0; i < idx; i++){
currentNode = currentNode.next;
}

return currentNode.val;
}

@Override
int size() {
return 0;
return size;
}
}
1 change: 1 addition & 0 deletions OWNER.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Зендрикова Александра Кирилловна, 593гр