From 254c708cf16bfe63f170461bcfc83c6cef43c257 Mon Sep 17 00:00:00 2001 From: ZerSa Date: Wed, 21 Feb 2018 19:45:56 +0300 Subject: [PATCH 1/2] Added OWNER.md --- OWNER.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 OWNER.md diff --git a/OWNER.md b/OWNER.md new file mode 100644 index 0000000..d015a77 --- /dev/null +++ b/OWNER.md @@ -0,0 +1 @@ +Зендрикова Александра Кирилловна, 593гр From f3d765a51ba5083cb5181bbcb46f447a5ffbbabf Mon Sep 17 00:00:00 2001 From: ZerSa Date: Thu, 21 Jun 2018 11:34:51 +0300 Subject: [PATCH 2/2] list --- .../main/java/ru/track/list/MyArrayList.java | 37 ++++++++++-- .../main/java/ru/track/list/MyLinkedList.java | 60 ++++++++++++++++++- 2 files changed, 90 insertions(+), 7 deletions(-) diff --git a/L3-oop/src/main/java/ru/track/list/MyArrayList.java b/L3-oop/src/main/java/ru/track/list/MyArrayList.java index 01752bc..52896c7 100644 --- a/L3-oop/src/main/java/ru/track/list/MyArrayList.java +++ b/L3-oop/src/main/java/ru/track/list/MyArrayList.java @@ -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; } } diff --git a/L3-oop/src/main/java/ru/track/list/MyLinkedList.java b/L3-oop/src/main/java/ru/track/list/MyLinkedList.java index 8400698..9064103 100644 --- a/L3-oop/src/main/java/ru/track/list/MyLinkedList.java +++ b/L3-oop/src/main/java/ru/track/list/MyLinkedList.java @@ -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; } }