From 7b132fcc068eeb2758cb125a4dd8cc8311db4adf Mon Sep 17 00:00:00 2001 From: ksilerman Date: Sat, 22 Dec 2018 17:48:47 +0300 Subject: [PATCH 1/4] =?UTF-8?q?=D0=BA=D0=BE=D0=B4=20=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=B0=D0=B5=D1=82=20=D0=B8=20=D1=81=D0=BE=D1=80?= =?UTF-8?q?=D1=82=D0=B8=D1=80=D1=83=D0=B5=D1=82.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_2/Array.java | 4 +++- lesson_2/ArrayImpl.java | 14 +++++++++++++- lesson_2/Main2.java | 43 ++++++++++++++++++++++++++++++----------- 3 files changed, 48 insertions(+), 13 deletions(-) diff --git a/lesson_2/Array.java b/lesson_2/Array.java index f3da3ff..f680178 100644 --- a/lesson_2/Array.java +++ b/lesson_2/Array.java @@ -1,6 +1,8 @@ package lesson_2; -ublic interface Array { +public interface Array { + + int[] rand(); void add(int value); diff --git a/lesson_2/ArrayImpl.java b/lesson_2/ArrayImpl.java index af90d9a..362cbe4 100644 --- a/lesson_2/ArrayImpl.java +++ b/lesson_2/ArrayImpl.java @@ -1,6 +1,7 @@ package lesson_2; import java.util.Arrays; +import java.util.Random; public class ArrayImpl implements Array { @@ -12,6 +13,16 @@ public ArrayImpl(int maxSize) { // this.currentSize = 0; } + @Override + public int[] rand() { + + Random r = new Random(); + for (int i = 0; i < data.length; i++) { + data[currentSize++] = r.nextInt(10); + } + return data; + } + @Override public void add(int value) { if (currentSize == data.length) { @@ -97,8 +108,9 @@ public int getSize() { public void display() { System.out.println("Display array:"); for (int i = 0; i < currentSize; i++) { - System.out.println(data[i]); + System.out.print(data[i] + " "); } + System.out.println(""); System.out.println("------------"); } diff --git a/lesson_2/Main2.java b/lesson_2/Main2.java index 8a321b4..9487f7c 100644 --- a/lesson_2/Main2.java +++ b/lesson_2/Main2.java @@ -19,10 +19,41 @@ public class Main2 { public static void main(String[] args) { // testArrayList(); // testArray(); - testArrayImpl(); +// testArrayImpl(); + testArrayRandom(); } + private static void testArrayRandom() { + Array array1 = new ArrayImpl(100000); + array1.rand(); + Array array2 = array1; + Array array3 = array1; + System.out.println("Размер массива = " + array1.getSize()); + System.out.println("Произвожу сортировку пузырьками подождите..."); + long start1 = System.nanoTime(); + array1.sortBubble(); + long finish1 = System.nanoTime(); + System.out.println("Время потраченное на сортировку: " + TimeUnit.NANOSECONDS.toMillis(finish1 - start1) + " мсек"); + System.out.println("---------"); + + System.out.println("Произвожу сортировку выборкой подождите..."); + long start2 = System.nanoTime(); + array2.sortSelect(); + long finish2 = System.nanoTime(); + System.out.println("Время потраченное на сортировку: " + TimeUnit.NANOSECONDS.toMillis(finish2 - start2) + " мсек"); + System.out.println("---------"); + + System.out.println("Произвожу сортировку вставкой подождите..."); + long start3 = System.nanoTime(); + array3.sortInsert(); + long finish3 = System.nanoTime(); + System.out.println("Время потраченное на сортировку: " + TimeUnit.NANOSECONDS.toMillis(finish3 - start3) + " мсек"); + System.out.println("---------"); + } + + + private static void testArrayImpl() { // Array array = new SortedArrayImpl(5); Array array = new ArrayImpl(5); @@ -36,18 +67,8 @@ private static void testArrayImpl() { array.add(6); array.add(3); -// array.sortBubble(); -// array.sortSelect(); - long start = System.nanoTime(); - array.sortInsert(); - long finish = System.nanoTime(); - System.out.println(TimeUnit.NANOSECONDS.toMillis(finish - start)); - array.display(); -// Random r = new Random(); -// r.nextInt(); - System.out.println("contains 3: " + array.contains(3)); System.out.println("a[2] = " + array.get(2)); From e601a6e591cabece2b87eae7c28d02d37b9e36f5 Mon Sep 17 00:00:00 2001 From: ksilerman Date: Tue, 8 Jan 2019 17:19:15 +0300 Subject: [PATCH 2/4] =?UTF-8?q?=D0=BA=D0=BE=D0=B4=20=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=B0=D0=B5=D1=82=20=D0=B8=20=D1=81=D0=BE=D1=80?= =?UTF-8?q?=D1=82=D0=B8=D1=80=D1=83=D0=B5=D1=82.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_3/Deque.java | 12 +++++++ lesson_3/DequeImpl.java | 39 +++++++++++++++++++++ lesson_3/main.java | 75 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 126 insertions(+) create mode 100644 lesson_3/Deque.java create mode 100644 lesson_3/DequeImpl.java create mode 100644 lesson_3/main.java diff --git a/lesson_3/Deque.java b/lesson_3/Deque.java new file mode 100644 index 0000000..ae3f008 --- /dev/null +++ b/lesson_3/Deque.java @@ -0,0 +1,12 @@ +package lesson_3; + +import lesson_3.queue.Queue; + +public interface Deque extends Queue { + + void insertLeft(int value); + void insertRight(int value); + + int removeLeft(); + int removeRight(); +} \ No newline at end of file diff --git a/lesson_3/DequeImpl.java b/lesson_3/DequeImpl.java new file mode 100644 index 0000000..1c57d9f --- /dev/null +++ b/lesson_3/DequeImpl.java @@ -0,0 +1,39 @@ +package lesson_3; + +import lesson_3.queue.QueueImpl; + +public class DequeImpl extends QueueImpl implements Deque { + + public DequeImpl(int maxSize) { + super(maxSize); + } + + @Override + public int removeLeft() { + return super.remove(); + } + + @Override + public void insertRight(int value) { + super.insert(value); + } + + @Override + public void insertLeft(int value) { + if (front - 1 < 0) + front = data.length; + + data[--front] = value; + size++; + } + + @Override + public int removeRight() { + if (rear < 0) + rear = data.length - 1; + + size--; + return data[rear--]; + } + +} diff --git a/lesson_3/main.java b/lesson_3/main.java new file mode 100644 index 0000000..67c9194 --- /dev/null +++ b/lesson_3/main.java @@ -0,0 +1,75 @@ +package lesson_3; + +import java.util.Stack; + +public class main { + + public static void main(String[] args) { + //TASK 1 + String str = "abcd"; + + Stack st = new Stack<>(); + for (int i = 0; i < str.length(); i++) { + st.push(str.charAt(i)); + } + + while ( !st.isEmpty() ) { + System.out.print(st.pop()); + } + System.out.println(); + + + //TASK 2 + Deque deq = new DequeImpl(6); + + insertRight(deq, 1); + insertRight(deq, 2); + insertRight(deq, 3); + insertRight(deq, 4);// 1 2 3 4 + insertLeft(deq, 5); // 5 1 2 3 4 + insertLeft(deq, 6); // 6 5 1 2 3 4 + + removeLeft(deq); //5 1 2 3 4 + removeRight(deq); // 5 1 2 3 + +// displayLeftToRight(deq); // Queue + displayRightToLeft(deq); //Stack + } + + private static void insertRight(Deque deq, int value) { + if ( !deq.isFull() ) { + deq.insertRight(value); + } + } + + private static void insertLeft(Deque deq, int value) { + if ( !deq.isFull() ) { + deq.insertLeft(value); + } + } + + private static void removeRight(Deque deq) { + if ( !deq.isEmpty() ) { + deq.removeRight(); + } + } + + private static void removeLeft(Deque deq) { + if ( !deq.isEmpty() ) { + deq.removeLeft(); + } + } + + private static void displayRightToLeft(Deque deq) { + while ( !deq.isEmpty() ) { + System.out.println(deq.removeRight()); + } + } + + private static void displayLeftToRight(Deque deq) { + while ( !deq.isEmpty() ) { + System.out.println(deq.removeLeft()); + } + } + } + From df5bd420602c8978b76929ec6b946bef519e239a Mon Sep 17 00:00:00 2001 From: ksilerman Date: Tue, 8 Jan 2019 17:45:42 +0300 Subject: [PATCH 3/4] =?UTF-8?q?=D0=BA=D0=BE=D0=B4=20=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=B0=D0=B5=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_4/main.java | 72 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 lesson_4/main.java diff --git a/lesson_4/main.java b/lesson_4/main.java new file mode 100644 index 0000000..f7fc1be --- /dev/null +++ b/lesson_4/main.java @@ -0,0 +1,72 @@ +package lesson_4; + +import java.util.Collection; +import java.util.Iterator; + +public class main { + + public static void main(String[] args) { +// testSimpleLinkedList(); +// testTwoSideLinkedList(); + testIterator(); + } + + private static void testIterator() { + java.util.LinkedList linkedList = new java.util.LinkedList(); + linkedList.addFirst(1); + linkedList.addFirst(2); + linkedList.addFirst(3); + + Collection collection = linkedList; + Iterator iterator = collection.iterator(); + + + for (Integer o : collection) { + System.out.println(o); + } + + while (iterator.hasNext()) { + int element = iterator.next(); + System.out.println(element); + } + } + + private static void testSimpleLinkedList() { + LinkedList linkedList = new SimpleLinkedListImpl(); + linkedList.add(1); + linkedList.add(2); + linkedList.add(3); + linkedList.add(4); + linkedList.add(6); + + System.out.println("Size = " + linkedList.getSize()); + + linkedList.display(); + + linkedList.remove(); + linkedList.remove(3); + + linkedList.display(); + +// for (int value : linkedList) { +// System.out.println(value); +// } + } + private static void testTwoSideLinkedList() { + TwoSideLinkedList linkedList = new TwoSideLinkedListImpl(); + linkedList.addFirst(1); + linkedList.addFirst(2); + linkedList.addFirst(3); + linkedList.addLast(4); + linkedList.addLast(6); + + System.out.println("Size = " + linkedList.getSize()); + + linkedList.display(); + + linkedList.remove(); + linkedList.remove(6); + + linkedList.display(); + } +} \ No newline at end of file From a56063dbd0db64eac491ab3ea27826cf66dd1674 Mon Sep 17 00:00:00 2001 From: ksilerman Date: Tue, 8 Jan 2019 19:09:22 +0300 Subject: [PATCH 4/4] =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D1=81=D0=BE=D0=B1?= =?UTF-8?q?=D1=80=D0=B0=D0=BB=20=D0=BF=D0=BE=D0=B4=20=D0=94=D0=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_4/LinkIterator/Link.java | 17 +++++ lesson_4/LinkIterator/LinkInterator.java | 75 +++++++++++++++++++ lesson_4/LinkIterator/LinkedList.java | 35 +++++++++ lesson_4/LinkIterator/main.java | 17 +++++ lesson_4/LinkedList/Link.java | 25 +++++++ lesson_4/LinkedList/LinkedList.java | 47 ++++++++++++ lesson_4/LinkedList/People.java | 56 +++++++++++++++ lesson_4/LinkedList/main.java | 19 +++++ lesson_4/Queue/Link.java | 18 +++++ lesson_4/Queue/LinkedList.java | 41 +++++++++++ lesson_4/Queue/Queue.java | 26 +++++++ lesson_4/Queue/main.java | 17 +++++ lesson_4/StackList/Link.java | 18 +++++ lesson_4/StackList/LinkedList.java | 35 +++++++++ lesson_4/StackList/StackList.java | 25 +++++++ lesson_4/StackList/main.java | 16 +++++ lesson_4/TwoSideLinkedList/Link.java | 20 ++++++ lesson_4/TwoSideLinkedList/LinkedList.java | 83 ++++++++++++++++++++++ lesson_4/TwoSideLinkedList/People.java | 56 +++++++++++++++ lesson_4/TwoSideLinkedList/main.java | 22 ++++++ lesson_4/main.java | 72 ------------------- 21 files changed, 668 insertions(+), 72 deletions(-) create mode 100644 lesson_4/LinkIterator/Link.java create mode 100644 lesson_4/LinkIterator/LinkInterator.java create mode 100644 lesson_4/LinkIterator/LinkedList.java create mode 100644 lesson_4/LinkIterator/main.java create mode 100644 lesson_4/LinkedList/Link.java create mode 100644 lesson_4/LinkedList/LinkedList.java create mode 100644 lesson_4/LinkedList/People.java create mode 100644 lesson_4/LinkedList/main.java create mode 100644 lesson_4/Queue/Link.java create mode 100644 lesson_4/Queue/LinkedList.java create mode 100644 lesson_4/Queue/Queue.java create mode 100644 lesson_4/Queue/main.java create mode 100644 lesson_4/StackList/Link.java create mode 100644 lesson_4/StackList/LinkedList.java create mode 100644 lesson_4/StackList/StackList.java create mode 100644 lesson_4/StackList/main.java create mode 100644 lesson_4/TwoSideLinkedList/Link.java create mode 100644 lesson_4/TwoSideLinkedList/LinkedList.java create mode 100644 lesson_4/TwoSideLinkedList/People.java create mode 100644 lesson_4/TwoSideLinkedList/main.java delete mode 100644 lesson_4/main.java diff --git a/lesson_4/LinkIterator/Link.java b/lesson_4/LinkIterator/Link.java new file mode 100644 index 0000000..6c86cbb --- /dev/null +++ b/lesson_4/LinkIterator/Link.java @@ -0,0 +1,17 @@ +package lesson_4.LinkIterator; + +class Link{ + public String name; + public int age; + + public Link next; + + public Link(String name, int age){ + this.name = name; + this.age = age; + } + + public void display(){ + System.out.println("Name: "+this.name+", age: "+this.age); + } +} diff --git a/lesson_4/LinkIterator/LinkInterator.java b/lesson_4/LinkIterator/LinkInterator.java new file mode 100644 index 0000000..1ae4529 --- /dev/null +++ b/lesson_4/LinkIterator/LinkInterator.java @@ -0,0 +1,75 @@ +package lesson_4.LinkIterator; + +class LinkInterator{ + private Link current; + private Link previous; + private LinkedList list; + + public LinkInterator(LinkedList list){ + this.list = list; + this.reset(); + } + + public void reset(){ + current = list.getFirst(); + previous = null; + } + + public boolean atEnd(){ + return (current.next == null); + } + + public void nextLink(){ + previous = current; + current = current.next; + } + + public Link getCurrent(){ + return current; + } + + public void insertAfter(String name, int age){ + Link newLink = new Link(name, age); + if (list.isEmpty()){ + list.setFirst(newLink); + current = newLink; + } else { + newLink.next = current.next; + current.next = newLink; + nextLink(); + } + } + + public void insertBefore(String name, int age){ + Link newLink = new Link(name, age); + if(previous == null){ + newLink.next = list.getFirst(); + list.setFirst(newLink); + reset(); + } + else{ + newLink.next = previous.next; + previous.next = newLink; + current = newLink; + } + } + + public String deleteCurrent(){ + String name = current.name; + if (previous == null){ + list.setFirst(current.next); + reset(); + } else { + previous.next = current.next; + if (atEnd()){ + reset(); + } else { + current = current.next; + } + } + + return name; + } + +} + diff --git a/lesson_4/LinkIterator/LinkedList.java b/lesson_4/LinkIterator/LinkedList.java new file mode 100644 index 0000000..97d4e09 --- /dev/null +++ b/lesson_4/LinkIterator/LinkedList.java @@ -0,0 +1,35 @@ +package lesson_4.LinkIterator; + +class LinkedList{ + private Link first; + + + public LinkedList(){ + first = null; + + } + + public Link getFirst() { + return first; + } + + public void setFirst(Link first) { + this.first = first; + } + + public LinkInterator getIterator(){ + return new LinkInterator(this); + } + + public boolean isEmpty(){ + return (first == null); + } + + public void display(){ + Link current = first; + while(current != null){ + current.display(); + current = current.next; + } + } +} diff --git a/lesson_4/LinkIterator/main.java b/lesson_4/LinkIterator/main.java new file mode 100644 index 0000000..bbf6ce2 --- /dev/null +++ b/lesson_4/LinkIterator/main.java @@ -0,0 +1,17 @@ +package lesson_4.LinkIterator; + +public class main { + public static void main(String[] args) { + LinkedList list = new LinkedList(); + + LinkInterator itr = new LinkInterator(list); + + itr.insertAfter("Artem", 20); + itr.insertBefore("Sergey", 10); + + list.display(); + } + +} + + diff --git a/lesson_4/LinkedList/Link.java b/lesson_4/LinkedList/Link.java new file mode 100644 index 0000000..8f298f9 --- /dev/null +++ b/lesson_4/LinkedList/Link.java @@ -0,0 +1,25 @@ +package lesson_4.LinkedList; + +class Link { + private T link; + private Link next; + + public Link(T link){ + this.link = link; + } + + public Link getNext() { + return next; + } + + public void setNext(Link next) { + this.next = next; + } + + public T getValue(){ + return link; + } +} + + + diff --git a/lesson_4/LinkedList/LinkedList.java b/lesson_4/LinkedList/LinkedList.java new file mode 100644 index 0000000..d095720 --- /dev/null +++ b/lesson_4/LinkedList/LinkedList.java @@ -0,0 +1,47 @@ +package lesson_4.LinkedList; + +class LinkedList { + private Link first; + + public LinkedList(){ + first = null; + } + + public boolean isEmpty(){ + return (first == null); + } + + public void insert(T link){ + Link l = new Link<>(link); + l.setNext(first); + this.first = l; + } + + public Link delete(){ + Link temp = first; + first = first.getNext(); + return temp; + } + + public void display(){ + Link current = first; + while (current != null) { + System.out.println(current.getValue()); + current = current.getNext(); + } + } + + public T find(T searchNode){ + Link findNode = new Link<>(searchNode); + Link current = first; + while (current != null) { + if (current.getValue().equals(findNode.getValue())){ + return findNode.getValue(); + } + current = current.getNext(); + } + return null; + } +} + + diff --git a/lesson_4/LinkedList/People.java b/lesson_4/LinkedList/People.java new file mode 100644 index 0000000..0eed6ee --- /dev/null +++ b/lesson_4/LinkedList/People.java @@ -0,0 +1,56 @@ +package lesson_4.LinkedList; + +import java.util.Objects; + +class People { + private String name; + private int age; + + public People(String name, int age) { + this.name = name; + this.age = age; + } + + public String getName() { + return name; + } + + public int getAge() { + return age; + } + + @Override + public int hashCode() { + int hash = 5; + hash = 53 * hash + Objects.hashCode(this.name); + hash = 53 * hash + this.age; + return hash; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final People other = (People) obj; + if (this.age != other.age) { + return false; + } + if (!Objects.equals(this.name, other.name)) { + return false; + } + return true; + } + + @Override + public String toString() { + return "Name: "+this.name+", age: "+this.age; + } +} + diff --git a/lesson_4/LinkedList/main.java b/lesson_4/LinkedList/main.java new file mode 100644 index 0000000..80affea --- /dev/null +++ b/lesson_4/LinkedList/main.java @@ -0,0 +1,19 @@ +package lesson_4.LinkedList; + +public class main { + + public static void main(String[] args) { + lesson_4.LinkedList.LinkedList list = new lesson_4.LinkedList.LinkedList(); + list.insert("Artem"); + list.insert("Roman"); + + System.out.println(list.find("Artem")); + + LinkedList peopleList = new LinkedList<>(); + peopleList.insert(new People("Artem", 22)); + peopleList.insert(new People("Roman", 18)); + + System.out.println(peopleList.find(new People("Artem", 22)).toString()); + } +} + diff --git a/lesson_4/Queue/Link.java b/lesson_4/Queue/Link.java new file mode 100644 index 0000000..5ef4ac2 --- /dev/null +++ b/lesson_4/Queue/Link.java @@ -0,0 +1,18 @@ +package lesson_4.Queue; + +class Link{ + public String name; + public int age; + + public Link next; + + public Link(String name, int age){ + this.name = name; + this.age = age; + } + + public void display(){ + System.out.println("Name: "+this.name+", age: "+this.age); + } +} + diff --git a/lesson_4/Queue/LinkedList.java b/lesson_4/Queue/LinkedList.java new file mode 100644 index 0000000..acfb5ed --- /dev/null +++ b/lesson_4/Queue/LinkedList.java @@ -0,0 +1,41 @@ +package lesson_4.Queue; + +class LinkedList{ + public Link first; + public Link last; + + public LinkedList(){ + first = null; + last = null; + } + + public boolean isEmpty(){ + return (first == null); + } + + public void insert(String name, int age){ + Link newLink = new Link(name, age); + if (this.isEmpty()) + first = newLink; + else + last.next = newLink; + last = newLink; + } + + public String delete(){ + Link temp = first; + if (first.next == null) + last = null; + first = first.next; + return temp.name; + + } + + public void display(){ + Link current = first; + while(current != null){ + current.display(); + current = current.next; + } + } +} diff --git a/lesson_4/Queue/Queue.java b/lesson_4/Queue/Queue.java new file mode 100644 index 0000000..45a4020 --- /dev/null +++ b/lesson_4/Queue/Queue.java @@ -0,0 +1,26 @@ +package lesson_4.Queue; + +class Queue{ + private LinkedList queue; + + public Queue(){ + queue = new LinkedList(); + } + + public boolean isEmpty(){ + return queue.isEmpty(); + } + + public void insert(String name, int age){ + queue.insert(name, age); + } + + public String delete(){ + return queue.delete(); + } + + public void display(){ + queue.display(); + } + +} diff --git a/lesson_4/Queue/main.java b/lesson_4/Queue/main.java new file mode 100644 index 0000000..ca7ba74 --- /dev/null +++ b/lesson_4/Queue/main.java @@ -0,0 +1,17 @@ +package lesson_4.Queue; + +public class main { + public static void main(String[] args) { + Queue q = new Queue(); + q.insert("Artem", 30); + q.insert("Viktor", 20); + q.insert("Sergey", 10); + q.display(); + while (!q.isEmpty()) { + System.out.println("Элемент "+ q.delete()+" удален из стека"); + } + } + +} + + diff --git a/lesson_4/StackList/Link.java b/lesson_4/StackList/Link.java new file mode 100644 index 0000000..ad4faa3 --- /dev/null +++ b/lesson_4/StackList/Link.java @@ -0,0 +1,18 @@ +package lesson_4.StackList; + +class Link{ + public String name; + public int age; + + public Link next; + + public Link(String name, int age){ + this.name = name; + this.age = age; + } + + public void display(){ + System.out.println("Name: "+this.name+", age: "+this.age); + } +} + diff --git a/lesson_4/StackList/LinkedList.java b/lesson_4/StackList/LinkedList.java new file mode 100644 index 0000000..846e2d4 --- /dev/null +++ b/lesson_4/StackList/LinkedList.java @@ -0,0 +1,35 @@ +package lesson_4.StackList; + +class LinkedList{ + public Link first; + + public LinkedList(){ + first = null; + } + + public boolean isEmpty(){ + return (first == null); + } + + public void insert(String name, int age){ + Link newLink = new Link(name, age); + newLink.next = first; + first = newLink; + } + + public Link delete(){ + + Link temp = first; + first = first.next; + return temp; + + } + + public void display(){ + Link current = first; + while(current != null){ + current.display(); + current = current.next; + } + } +} diff --git a/lesson_4/StackList/StackList.java b/lesson_4/StackList/StackList.java new file mode 100644 index 0000000..f45ead0 --- /dev/null +++ b/lesson_4/StackList/StackList.java @@ -0,0 +1,25 @@ +package lesson_4.StackList; + +class StackList{ + private LinkedList list; + public StackList(){ + list = new LinkedList(); + } + + public void push(String name, int age){ + list.insert(name, age); + } + + public String pop(){ + return list.delete().name; + } + + public boolean isEmpty(){ + return list.isEmpty(); + } + + public void display(){ + list.display(); + } + +} diff --git a/lesson_4/StackList/main.java b/lesson_4/StackList/main.java new file mode 100644 index 0000000..d490918 --- /dev/null +++ b/lesson_4/StackList/main.java @@ -0,0 +1,16 @@ +package lesson_4.StackList; + +public class main { + + public static void main(String[] args) { + StackList sl = new StackList(); + sl.push("Artem", 30); + sl.push("Viktor", 20); + sl.push("Sergey", 10); + sl.display(); + while (!sl.isEmpty()) { + System.out.println("Элемент "+ sl.pop()+" удален из стека"); + } + } +} + diff --git a/lesson_4/TwoSideLinkedList/Link.java b/lesson_4/TwoSideLinkedList/Link.java new file mode 100644 index 0000000..3b177fa --- /dev/null +++ b/lesson_4/TwoSideLinkedList/Link.java @@ -0,0 +1,20 @@ +package lesson_4.TwoSideLinkedList; + +class Link { + public String name; + public int age; + + public Link next; + + public Link(String name, int age){ + this.name = name; + this.age = age; + } + + public void display(){ + System.out.println("Name: "+this.name+", age: "+this.age); + } +} + + + diff --git a/lesson_4/TwoSideLinkedList/LinkedList.java b/lesson_4/TwoSideLinkedList/LinkedList.java new file mode 100644 index 0000000..c956a51 --- /dev/null +++ b/lesson_4/TwoSideLinkedList/LinkedList.java @@ -0,0 +1,83 @@ +package lesson_4.TwoSideLinkedList; + +import lesson_4.TwoSideLinkedList.Link; + +class LinkedList { + public Link first; + public Link last; + + public LinkedList(){ + first = null; + last = null; + } + + public boolean isEmpty(){ + return (first == null); + } + + public void insert(String name, int age){ + Link newLink = new Link(name, age); + if (this.isEmpty()) + last = newLink; + newLink.next = first; + first = newLink; + } + + public void insertLast(String name, int age){ + Link newLink = new Link(name, age); + if (this.isEmpty()){ + first = newLink; + } else { + last.next = newLink; + } + last = newLink; + } + public Link delete(){ + + Link temp = first; + if (first.next == null) + last = null; + first = first.next; + return temp; + + } + + public void display(){ + Link current = first; + while(current != null){ + current.display(); + current = current.next; + } + } + public Link find(String name){ + Link current = first; + while(current.name != name){ + if(current.next == null) + return null; + else + current = current.next; + } + return current; + } + + public Link delete(String name){ + Link current = first; + Link previous = first; + while(current.name != name){ + if(current.next == null) + return null; + else{ + previous = current; + current = current.next; + } + } + if(current == first) + first = first.next; + else + previous.next = current.next; + return current; + + } +} + + diff --git a/lesson_4/TwoSideLinkedList/People.java b/lesson_4/TwoSideLinkedList/People.java new file mode 100644 index 0000000..f972630 --- /dev/null +++ b/lesson_4/TwoSideLinkedList/People.java @@ -0,0 +1,56 @@ +package lesson_4.TwoSideLinkedList; + +import java.util.Objects; + +class People { + private String name; + private int age; + + public People(String name, int age) { + this.name = name; + this.age = age; + } + + public String getName() { + return name; + } + + public int getAge() { + return age; + } + + @Override + public int hashCode() { + int hash = 5; + hash = 53 * hash + Objects.hashCode(this.name); + hash = 53 * hash + this.age; + return hash; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final People other = (People) obj; + if (this.age != other.age) { + return false; + } + if (!Objects.equals(this.name, other.name)) { + return false; + } + return true; + } + + @Override + public String toString() { + return "Name: "+this.name+", age: "+this.age; + } +} + diff --git a/lesson_4/TwoSideLinkedList/main.java b/lesson_4/TwoSideLinkedList/main.java new file mode 100644 index 0000000..42668a3 --- /dev/null +++ b/lesson_4/TwoSideLinkedList/main.java @@ -0,0 +1,22 @@ +package lesson_4.TwoSideLinkedList; + + +public class main { + + public static void main(String[] args) { + LinkedList list = new LinkedList(); + list.insert("Artem", 30); + list.insert("Misha", 10); + list.insert("Vova", 5); + list.insertLast("Petya", 25); + + list.display(); + System.out.println("Удаление элементов списка"); + + + list.delete("Vova"); + list.display(); + + } +} + diff --git a/lesson_4/main.java b/lesson_4/main.java deleted file mode 100644 index f7fc1be..0000000 --- a/lesson_4/main.java +++ /dev/null @@ -1,72 +0,0 @@ -package lesson_4; - -import java.util.Collection; -import java.util.Iterator; - -public class main { - - public static void main(String[] args) { -// testSimpleLinkedList(); -// testTwoSideLinkedList(); - testIterator(); - } - - private static void testIterator() { - java.util.LinkedList linkedList = new java.util.LinkedList(); - linkedList.addFirst(1); - linkedList.addFirst(2); - linkedList.addFirst(3); - - Collection collection = linkedList; - Iterator iterator = collection.iterator(); - - - for (Integer o : collection) { - System.out.println(o); - } - - while (iterator.hasNext()) { - int element = iterator.next(); - System.out.println(element); - } - } - - private static void testSimpleLinkedList() { - LinkedList linkedList = new SimpleLinkedListImpl(); - linkedList.add(1); - linkedList.add(2); - linkedList.add(3); - linkedList.add(4); - linkedList.add(6); - - System.out.println("Size = " + linkedList.getSize()); - - linkedList.display(); - - linkedList.remove(); - linkedList.remove(3); - - linkedList.display(); - -// for (int value : linkedList) { -// System.out.println(value); -// } - } - private static void testTwoSideLinkedList() { - TwoSideLinkedList linkedList = new TwoSideLinkedListImpl(); - linkedList.addFirst(1); - linkedList.addFirst(2); - linkedList.addFirst(3); - linkedList.addLast(4); - linkedList.addLast(6); - - System.out.println("Size = " + linkedList.getSize()); - - linkedList.display(); - - linkedList.remove(); - linkedList.remove(6); - - linkedList.display(); - } -} \ No newline at end of file