Skip to content
This repository was archived by the owner on Dec 28, 2024. It is now read-only.
Merged
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
13 changes: 13 additions & 0 deletions students/23K0120/23K0120-p23/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>23K0120</artifactId>
<groupId>ru.mirea.practice</groupId>
<version>2024.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>23K0120-p23</artifactId>
<description>Очередь</description>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package ru.mirea.practice.s23k0120;

public final class Main {

private Main() {

}

public static void main(String[] args) {
System.out.println("Двадцать третья практическая работа!");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
package ru.mirea.practice.s23k0120.task1;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class ArrayQueue<T> implements ArrayQueueAdt<T> {
private final int size;
private final List<T> array;
private int indexFront;
private int indexRear;

ArrayQueue(Collection<T> collection) {
array = new ArrayList<>(collection);
this.size = collection.size();
indexFront = 0;
indexRear = this.size - 1;
}

ArrayQueue(int size) {
array = new ArrayList<>();
for (int i = 0; i < size; i++) {
array.add(i, null);
}
indexFront = 0;
indexRear = -1;
this.size = size;
}

@Override
public void enqueue(T element) {
indexRear += 1;
if (indexRear == size) {
indexRear = 0;
}
array.set(indexRear, element);
}

@Override
public T dequeue() {
T element;
if (isEmpty()) {
element = null;
} else {
element = array.get(indexFront);
if (indexRear == indexFront) {
indexRear -= 1;
}
if (indexRear == -1) {
indexRear = size - 1;
}
indexFront += 1;
if (indexFront == size) {
indexFront = 0;
}
}
return element;
}

@Override
public int size() {
return size;
}

@Override
public boolean isEmpty() {
return indexRear == -1;
}

@Override
public void clear() {
array.clear();
}

@Override
public T front() {
return array.get(0);
}

@Override
public T rear() {
return array.get(indexRear);
}

@Override
public String toString() {
ArrayList<T> tempList = new ArrayList<>(size);
if (indexRear == -1) {
return "[]";
} else if (indexFront < indexRear) {
for (int i = indexFront; i < indexRear + 1; i++) {
tempList.add(array.get(i));
}
} else {
for (int i = indexFront; i < size; i++) {
tempList.add(array.get(i));
}
for (int i = 0; i < indexRear + 1; i++) {
if (i == indexFront) {
break;
}
tempList.add(array.get(i));
}
}
return tempList.toString();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package ru.mirea.practice.s23k0120.task1;

public interface ArrayQueueAdt<T> {
void enqueue(T element);

T dequeue();

int size();

boolean isEmpty();

void clear();

T front();

T rear();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package ru.mirea.practice.s23k0120.task1;

public abstract class ArrayQueueTest {
public static void main(String[] args) {
ArrayQueue<Integer> queue = new ArrayQueue<>(5);
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
queue.enqueue(4);
queue.enqueue(5);
System.out.println(queue);
queue.enqueue(8);
System.out.println(queue);
queue.dequeue();
queue.dequeue();
queue.dequeue();
System.out.println(queue);
queue.enqueue(3);
System.out.println(queue);
queue.enqueue(2);
System.out.println(queue);
queue.enqueue(1);
System.out.println(queue);
queue.dequeue();
System.out.println(queue);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package ru.mirea.practice.s23k0120.task2;

import java.util.AbstractList;

public abstract class AbstractQueue<T> implements Queue<T> {
private int size;
private AbstractList<T> list;

@Override
public abstract void enqueue(T element);

@Override
public abstract T dequeue();

@Override
public int size() {
return size;
}

@Override
public boolean isEmpty() {
return list.isEmpty();
}

@Override
public void clear() {
list.clear();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package ru.mirea.practice.s23k0120.task2;

import java.util.Collection;
import java.util.LinkedList;
import java.util.List;

public class LinkedQueue<T> implements Queue<T> {
private final List<T> linkedList;
private int size;

LinkedQueue(Collection<T> collection) {
linkedList = new LinkedList<>(collection);
this.size = collection.size();
}

LinkedQueue() {
linkedList = new LinkedList<>();
this.size = 0;
}

@Override
public void enqueue(T element) {
linkedList.add(size - 1, element);
size += 1;
}

@Override
public T dequeue() {
T element = linkedList.get(0);
linkedList.remove(0);
size -= 1;
return element;
}

@Override
public int size() {
return size;
}

@Override
public boolean isEmpty() {
return linkedList.isEmpty();
}

@Override
public void clear() {
linkedList.clear();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package ru.mirea.practice.s23k0120.task2;

public interface Queue<T> {
void enqueue(T element);

T dequeue();

int size();

boolean isEmpty();

void clear();
}
13 changes: 13 additions & 0 deletions students/23K0120/23K0120-p24/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>23K0120</artifactId>
<groupId>ru.mirea.practice</groupId>
<version>2024.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>23K0120-p24</artifactId>
<description>Порождающие паттерны</description>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package ru.mirea.practice.s23k0120;

public final class Main {

private Main() {

}

public static void main(String[] args) {
System.out.println("Двадцать четвёртая практическая работа!");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package ru.mirea.practice.s23k0120.task1;


public class Complex {
private double real;
private double imag;

public Complex(double real, double imag) {
this.real = real;
this.imag = imag;
}

public Complex() {
this.real = 0;
this.imag = 0;
}

public double getReal() {
return real;
}

public void setReal(double real) {
this.real = real;
}

public double getImag() {
return imag;
}

public void setImag(double imag) {
this.imag = imag;
}

@Override
public String toString() {
String complexString;
if (imag >= 0) {
complexString = String.format("%f + %fi", real, imag);
} else {
complexString = String.format("%f - %fi", real, Math.abs(imag));
}
return complexString;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package ru.mirea.practice.s23k0120.task1;

public interface ComplexAbstractFactory {
Complex createComplex();

Complex createComplex(int real, int imag);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package ru.mirea.practice.s23k0120.task1;

public class ComplexFactory implements ComplexAbstractFactory {
@Override
public Complex createComplex() {
return new Complex();
}

@Override
public Complex createComplex(int real, int imag) {
return new Complex(real, imag);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package ru.mirea.practice.s23k0120.task2;

public abstract class AbstractChairFactory {
abstract VictorianChair createVictorianChair(int age);

abstract MagicChair createMagicChair();

abstract FunctionalChair createFunctionalChair();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package ru.mirea.practice.s23k0120.task2;

public interface Chair {

}
Loading
Loading