This repository was archived by the owner on Dec 28, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 22 files changed +509
-0
lines changed
src/main/java/ru/mirea/practice/s0000001
src/main/java/ru/mirea/practice/s0000001
src/main/java/ru/mirea/practice/s0000001 Expand file tree Collapse file tree 22 files changed +509
-0
lines changed Original file line number Diff line number Diff line change 1+ <?xml version =" 1.0" encoding =" UTF-8" ?>
2+ <project xmlns =" http://maven.apache.org/POM/4.0.0" xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
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 >23K0565</artifactId >
7+ <groupId >ru.mirea.practice</groupId >
8+ <version >2024.1</version >
9+ <relativePath >../pom.xml</relativePath >
10+ </parent >
11+ <artifactId >23K0565-p23</artifactId >
12+ <description >23 практическая</description >
13+ </project >
Original file line number Diff line number Diff line change 1+ package ru .mirea .practice .s0000001 .n1 ;
2+
3+ public class ArrQueue {
4+ private final int [] queue ;
5+ private int size ;
6+ private int front ;
7+ private int rear ;
8+
9+ public ArrQueue (int capacity ) {
10+ queue = new int [capacity ];
11+ size = 0 ;
12+ front = 0 ;
13+ rear = 0 ;
14+ }
15+
16+ public void enqueue (int val ) {
17+ if (size == queue .length ) {
18+ throw new IllegalStateException ("Queue full" );
19+ }
20+ queue [rear ] = val ;
21+ rear = (rear + 1 ) % queue .length ;
22+ size ++;
23+ }
24+
25+ public int element () {
26+ if (size == 0 ) {
27+ throw new IllegalStateException ("Queue empty" );
28+ }
29+ return queue [front ];
30+ }
31+
32+ public int dequeue () {
33+ if (size == 0 ) {
34+ throw new IllegalStateException ("Queue empty" );
35+ }
36+ int val = queue [front ];
37+ front = (front + 1 ) % queue .length ;
38+ size --;
39+ return val ;
40+ }
41+
42+ public int size () {
43+ return size ;
44+ }
45+
46+ public boolean isEmpty () {
47+ return size == 0 ;
48+ }
49+
50+ public void clear () {
51+ size = 0 ;
52+ front = 0 ;
53+ rear = 0 ;
54+ }
55+ }
Original file line number Diff line number Diff line change 1+ package ru .mirea .practice .s0000001 .n1 ;
2+
3+ public class ArrQueueADt {
4+ private final int [] queue ;
5+ private int size ;
6+ private int front ;
7+ private int rear ;
8+
9+ public ArrQueueADt (int capacity ) {
10+ queue = new int [capacity ];
11+ size = 0 ;
12+ front = 0 ;
13+ rear = 0 ;
14+ }
15+
16+ public static void enqueue (ArrQueueADt q , int val ) {
17+ if (q .size == q .queue .length ) {
18+ throw new IllegalStateException ("Queue full" );
19+ }
20+ q .queue [q .rear ] = val ;
21+ q .rear = (q .rear + 1 ) % q .queue .length ;
22+ q .size ++;
23+ }
24+
25+ public static int element (ArrQueueADt q ) {
26+ if (q .size == 0 ) {
27+ throw new IllegalStateException ("Queue empty" );
28+ }
29+ return q .queue [q .front ];
30+ }
31+
32+ public static int dequeue (ArrQueueADt q ) {
33+ if (q .size == 0 ) {
34+ throw new IllegalStateException ("Queue empty" );
35+ }
36+ int val = q .queue [q .front ];
37+ q .front = (q .front + 1 ) % q .queue .length ;
38+ q .size --;
39+ return val ;
40+ }
41+
42+ public static int size (ArrQueueADt q ) {
43+ return q .size ;
44+ }
45+
46+ public static boolean isEmpty (ArrQueueADt q ) {
47+ return q .size == 0 ;
48+ }
49+
50+ public static void clear (ArrQueueADt q ) {
51+ q .size = 0 ;
52+ q .front = 0 ;
53+ q .rear = 0 ;
54+ }
55+ }
Original file line number Diff line number Diff line change 1+ package ru .mirea .practice .s0000001 .n1 ;
2+
3+ public final class ArrQueueMod {
4+ private static final int CAPACITY = 10 ;
5+ private static final int [] queue = new int [CAPACITY ];
6+ private static int size = 0 ;
7+ private static int front = 0 ;
8+ private static int rear = 0 ;
9+
10+ private ArrQueueMod () {
11+ throw new UnsupportedOperationException ("Utility class" );
12+ }
13+
14+ public static void enqueue (int val ) {
15+ if (size == CAPACITY ) {
16+ throw new IllegalStateException ("Queue full" );
17+ }
18+ queue [rear ] = val ;
19+ rear = (rear + 1 ) % CAPACITY ;
20+ size ++;
21+ }
22+
23+ public static int element () {
24+ if (size == 0 ) {
25+ throw new IllegalStateException ("Queue empty" );
26+ }
27+ return queue [front ];
28+ }
29+
30+ public static int dequeue () {
31+ if (size == 0 ) {
32+ throw new IllegalStateException ("Queue empty" );
33+ }
34+ int val = queue [front ];
35+ front = (front + 1 ) % CAPACITY ;
36+ size --;
37+ return val ;
38+ }
39+
40+ public static int size () {
41+ return size ;
42+ }
43+
44+ public static boolean isEmpty () {
45+ return size == 0 ;
46+ }
47+
48+ public static void clear () {
49+ size = 0 ;
50+ front = 0 ;
51+ rear = 0 ;
52+ }
53+ }
Original file line number Diff line number Diff line change 1+ package ru .mirea .practice .s0000001 .n2 ;
2+
3+ public abstract class AbsQueue implements Queue {
4+ protected int size = 0 ;
5+
6+ @ Override
7+ public int size () {
8+ return size ;
9+ }
10+
11+ @ Override
12+ public boolean isEmpty () {
13+ return size == 0 ;
14+ }
15+
16+ @ Override
17+ public void clear () {
18+ size = 0 ;
19+ }
20+ }
Original file line number Diff line number Diff line change 1+ package ru .mirea .practice .s0000001 .n2 ;
2+
3+ public class LinkQueue extends AbsQueue {
4+ private static class Node {
5+ int value ;
6+ Node next ;
7+
8+ Node (int val , Node next ) {
9+ this .value = val ;
10+ this .next = next ;
11+ }
12+ }
13+
14+ private Node head = null ;
15+ private Node tail = null ;
16+
17+ @ Override
18+ public void enqueue (int val ) {
19+ Node newNode = new Node (val , null );
20+ if (tail == null ) {
21+ head = newNode ;
22+ } else {
23+ tail .next = newNode ;
24+ }
25+ tail = newNode ;
26+ size ++;
27+ }
28+
29+ @ Override
30+ public int element () {
31+ if (isEmpty ()) {
32+ throw new IllegalStateException ("Queue empty" );
33+ } else {
34+ return head .value ;
35+ }
36+ }
37+
38+ @ Override
39+ public int dequeue () {
40+ if (isEmpty ()) {
41+ throw new IllegalStateException ("Queue empty" );
42+ } else {
43+ final int val = head .value ;
44+ head = head .next ;
45+ if (head == null ) {
46+ tail = null ;
47+ }
48+ size --;
49+ return val ;
50+ }
51+ }
52+ }
Original file line number Diff line number Diff line change 1+ package ru .mirea .practice .s0000001 .n2 ;
2+
3+ public interface Queue {
4+ void enqueue (int val );
5+
6+ int element ();
7+
8+ int dequeue ();
9+
10+ int size ();
11+
12+ boolean isEmpty ();
13+
14+ void clear ();
15+ }
Original file line number Diff line number Diff line change 1+ <?xml version =" 1.0" encoding =" UTF-8" ?>
2+ <project xmlns =" http://maven.apache.org/POM/4.0.0" xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
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 >23K0565</artifactId >
7+ <groupId >ru.mirea.practice</groupId >
8+ <version >2024.1</version >
9+ <relativePath >../pom.xml</relativePath >
10+ </parent >
11+ <artifactId >23K0565-p24</artifactId >
12+ <description >24 практическая</description >
13+ </project >
Original file line number Diff line number Diff line change 1+ package ru .mirea .practice .s0000001 .n1 ;
2+
3+ class Comx {
4+ private int r ;
5+ private int i ;
6+
7+ public Comx () {
8+ this .r = 0 ;
9+ this .i = 0 ;
10+ }
11+
12+ public Comx (int r , int i ) {
13+ this .r = r ;
14+ this .i = i ;
15+ }
16+
17+ @ Override
18+ public String toString () {
19+ return "Comx{"
20+ +
21+ "r=" + r
22+ +
23+ ", i=" + i
24+ +
25+ '}' ;
26+ }
27+ }
Original file line number Diff line number Diff line change 1+ package ru .mirea .practice .s0000001 .n1 ;
2+
3+ interface ComxAbsFactory {
4+ Comx createComx ();
5+
6+ Comx createComx (int r , int i );
7+ }
You can’t perform that action at this time.
0 commit comments