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
4 changes: 3 additions & 1 deletion lesson_2/Array.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package lesson_2;

ublic interface Array {
public interface Array {

int[] rand();

void add(int value);

Expand Down
14 changes: 13 additions & 1 deletion lesson_2/ArrayImpl.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package lesson_2;

import java.util.Arrays;
import java.util.Random;

public class ArrayImpl implements Array {

Expand All @@ -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) {
Expand Down Expand Up @@ -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("------------");
}

Expand Down
43 changes: 32 additions & 11 deletions lesson_2/Main2.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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));
Expand Down
12 changes: 12 additions & 0 deletions lesson_3/Deque.java
Original file line number Diff line number Diff line change
@@ -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();
}
39 changes: 39 additions & 0 deletions lesson_3/DequeImpl.java
Original file line number Diff line number Diff line change
@@ -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--];
}

}
75 changes: 75 additions & 0 deletions lesson_3/main.java
Original file line number Diff line number Diff line change
@@ -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 <T> void displayRightToLeft(Deque deq) {
while ( !deq.isEmpty() ) {
System.out.println(deq.removeRight());
}
}

private static <T> void displayLeftToRight(Deque deq) {
while ( !deq.isEmpty() ) {
System.out.println(deq.removeLeft());
}
}
}

17 changes: 17 additions & 0 deletions lesson_4/LinkIterator/Link.java
Original file line number Diff line number Diff line change
@@ -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);
}
}
75 changes: 75 additions & 0 deletions lesson_4/LinkIterator/LinkInterator.java
Original file line number Diff line number Diff line change
@@ -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;
}

}

35 changes: 35 additions & 0 deletions lesson_4/LinkIterator/LinkedList.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
}
17 changes: 17 additions & 0 deletions lesson_4/LinkIterator/main.java
Original file line number Diff line number Diff line change
@@ -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();
}

}


Loading