Skip to content

Commit 892d02e

Browse files
authored
Merge branch 'BasePractice:main' into main
2 parents d62d60d + 44c31f5 commit 892d02e

File tree

51 files changed

+1266
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1266
-0
lines changed

students/23K0120/23K0120-p23/pom.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<artifactId>23K0120</artifactId>
7+
<groupId>ru.mirea.practice</groupId>
8+
<version>2024.1</version>
9+
<relativePath>../pom.xml</relativePath>
10+
</parent>
11+
<artifactId>23K0120-p23</artifactId>
12+
<description>Очередь</description>
13+
</project>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package ru.mirea.practice.s23k0120;
2+
3+
public final class Main {
4+
5+
private Main() {
6+
7+
}
8+
9+
public static void main(String[] args) {
10+
System.out.println("Двадцать третья практическая работа!");
11+
}
12+
}
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
package ru.mirea.practice.s23k0120.task1;
2+
3+
import java.util.ArrayList;
4+
import java.util.Collection;
5+
import java.util.List;
6+
7+
public class ArrayQueue<T> implements ArrayQueueAdt<T> {
8+
private final int size;
9+
private final List<T> array;
10+
private int indexFront;
11+
private int indexRear;
12+
13+
ArrayQueue(Collection<T> collection) {
14+
array = new ArrayList<>(collection);
15+
this.size = collection.size();
16+
indexFront = 0;
17+
indexRear = this.size - 1;
18+
}
19+
20+
ArrayQueue(int size) {
21+
array = new ArrayList<>();
22+
for (int i = 0; i < size; i++) {
23+
array.add(i, null);
24+
}
25+
indexFront = 0;
26+
indexRear = -1;
27+
this.size = size;
28+
}
29+
30+
@Override
31+
public void enqueue(T element) {
32+
indexRear += 1;
33+
if (indexRear == size) {
34+
indexRear = 0;
35+
}
36+
array.set(indexRear, element);
37+
}
38+
39+
@Override
40+
public T dequeue() {
41+
T element;
42+
if (isEmpty()) {
43+
element = null;
44+
} else {
45+
element = array.get(indexFront);
46+
if (indexRear == indexFront) {
47+
indexRear -= 1;
48+
}
49+
if (indexRear == -1) {
50+
indexRear = size - 1;
51+
}
52+
indexFront += 1;
53+
if (indexFront == size) {
54+
indexFront = 0;
55+
}
56+
}
57+
return element;
58+
}
59+
60+
@Override
61+
public int size() {
62+
return size;
63+
}
64+
65+
@Override
66+
public boolean isEmpty() {
67+
return indexRear == -1;
68+
}
69+
70+
@Override
71+
public void clear() {
72+
array.clear();
73+
}
74+
75+
@Override
76+
public T front() {
77+
return array.get(0);
78+
}
79+
80+
@Override
81+
public T rear() {
82+
return array.get(indexRear);
83+
}
84+
85+
@Override
86+
public String toString() {
87+
ArrayList<T> tempList = new ArrayList<>(size);
88+
if (indexRear == -1) {
89+
return "[]";
90+
} else if (indexFront < indexRear) {
91+
for (int i = indexFront; i < indexRear + 1; i++) {
92+
tempList.add(array.get(i));
93+
}
94+
} else {
95+
for (int i = indexFront; i < size; i++) {
96+
tempList.add(array.get(i));
97+
}
98+
for (int i = 0; i < indexRear + 1; i++) {
99+
if (i == indexFront) {
100+
break;
101+
}
102+
tempList.add(array.get(i));
103+
}
104+
}
105+
return tempList.toString();
106+
}
107+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package ru.mirea.practice.s23k0120.task1;
2+
3+
public interface ArrayQueueAdt<T> {
4+
void enqueue(T element);
5+
6+
T dequeue();
7+
8+
int size();
9+
10+
boolean isEmpty();
11+
12+
void clear();
13+
14+
T front();
15+
16+
T rear();
17+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package ru.mirea.practice.s23k0120.task1;
2+
3+
public abstract class ArrayQueueTest {
4+
public static void main(String[] args) {
5+
ArrayQueue<Integer> queue = new ArrayQueue<>(5);
6+
queue.enqueue(1);
7+
queue.enqueue(2);
8+
queue.enqueue(3);
9+
queue.enqueue(4);
10+
queue.enqueue(5);
11+
System.out.println(queue);
12+
queue.enqueue(8);
13+
System.out.println(queue);
14+
queue.dequeue();
15+
queue.dequeue();
16+
queue.dequeue();
17+
System.out.println(queue);
18+
queue.enqueue(3);
19+
System.out.println(queue);
20+
queue.enqueue(2);
21+
System.out.println(queue);
22+
queue.enqueue(1);
23+
System.out.println(queue);
24+
queue.dequeue();
25+
System.out.println(queue);
26+
}
27+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package ru.mirea.practice.s23k0120.task2;
2+
3+
import java.util.AbstractList;
4+
5+
public abstract class AbstractQueue<T> implements Queue<T> {
6+
private int size;
7+
private AbstractList<T> list;
8+
9+
@Override
10+
public abstract void enqueue(T element);
11+
12+
@Override
13+
public abstract T dequeue();
14+
15+
@Override
16+
public int size() {
17+
return size;
18+
}
19+
20+
@Override
21+
public boolean isEmpty() {
22+
return list.isEmpty();
23+
}
24+
25+
@Override
26+
public void clear() {
27+
list.clear();
28+
}
29+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package ru.mirea.practice.s23k0120.task2;
2+
3+
import java.util.Collection;
4+
import java.util.LinkedList;
5+
import java.util.List;
6+
7+
public class LinkedQueue<T> implements Queue<T> {
8+
private final List<T> linkedList;
9+
private int size;
10+
11+
LinkedQueue(Collection<T> collection) {
12+
linkedList = new LinkedList<>(collection);
13+
this.size = collection.size();
14+
}
15+
16+
LinkedQueue() {
17+
linkedList = new LinkedList<>();
18+
this.size = 0;
19+
}
20+
21+
@Override
22+
public void enqueue(T element) {
23+
linkedList.add(size - 1, element);
24+
size += 1;
25+
}
26+
27+
@Override
28+
public T dequeue() {
29+
T element = linkedList.get(0);
30+
linkedList.remove(0);
31+
size -= 1;
32+
return element;
33+
}
34+
35+
@Override
36+
public int size() {
37+
return size;
38+
}
39+
40+
@Override
41+
public boolean isEmpty() {
42+
return linkedList.isEmpty();
43+
}
44+
45+
@Override
46+
public void clear() {
47+
linkedList.clear();
48+
}
49+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package ru.mirea.practice.s23k0120.task2;
2+
3+
public interface Queue<T> {
4+
void enqueue(T element);
5+
6+
T dequeue();
7+
8+
int size();
9+
10+
boolean isEmpty();
11+
12+
void clear();
13+
}

students/23K0120/23K0120-p24/pom.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<artifactId>23K0120</artifactId>
7+
<groupId>ru.mirea.practice</groupId>
8+
<version>2024.1</version>
9+
<relativePath>../pom.xml</relativePath>
10+
</parent>
11+
<artifactId>23K0120-p24</artifactId>
12+
<description>Порождающие паттерны</description>
13+
</project>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package ru.mirea.practice.s23k0120;
2+
3+
public final class Main {
4+
5+
private Main() {
6+
7+
}
8+
9+
public static void main(String[] args) {
10+
System.out.println("Двадцать четвёртая практическая работа!");
11+
}
12+
}

0 commit comments

Comments
 (0)