/
RoundQueue.java
65 lines (54 loc) · 1.01 KB
/
RoundQueue.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.cdm.view.elements.paths;
public class RoundQueue {
private PathPos[] ts;
private int in = 0, out = 0;
private int size = 0;
public RoundQueue(int capacity) {
ts = new PathPos[capacity];
for (int i = 0; i < capacity; i++)
ts[i] = new PathPos();
}
public void add(PathPos t) {
if (alreadyIn(t))
return;
ts[in].assign(t);
in++;
in %= ts.length;
size++;
}
private boolean alreadyIn(PathPos t) {
for (int i = out; i != in; i = ((i + 1) % ts.length)) {
if (ts[i].equals(t))
return true;
}
return false;
}
public void cleanup() {
size = out = in = 0;
}
public int capacity() {
return ts.length;
}
public int size() {
return size;
}
public PathPos first() {
return ts[out];
}
public void removeFirst() {
if (size > 0) {
out++;
out %= ts.length;
size--;
}
}
public void print() {
if (true)
return;
int i;
for (i = out; i != in; i = ((i + 1) % ts.length)) {
System.out.print(ts[i].toString() + " ");
}
System.out.println();
}
}