-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFila.java
82 lines (63 loc) · 1.6 KB
/
Fila.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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import java.util.Arrays;
public class Fila {
private int[] fila;
private int head;
private int tail;
private int capacidade;
private int elementos;
public static final int CAPACIDADE_DEFAULT = 5;
public Fila() {
this.fila = new int[CAPACIDADE_DEFAULT];
this.capacidade = CAPACIDADE_DEFAULT;
this.head = -1;
this.tail = -1;
}
public Fila(int capacidade) {
this.fila = new int[capacidade];
this.capacidade = capacidade;
this.head = -1;
this.tail = -1;
}
public boolean isEmpty() {
return this.elementos == 0;
}
public boolean isFull() {
return this.capacidade == this.elementos;
}
public int head() {
return fila[head];
}
public int tail() {
return fila[tail];
}
public int dequeue() {
if (isEmpty()) {
throw new RuntimeException();
}
int elemento = fila[head];
if (head == tail) {
this.head = -1;
this.tail = -1;
}
this.head = (head + 1) % fila.length;
this.elementos--;
return elemento;
}
public void enqueue(int elemento) {
if (isFull()) {
throw new RuntimeException();
}
if (isEmpty()) {
this.tail +=1;
this.head +=1;
fila[tail] = elemento;
} else {
this.tail = (tail + 1) % fila.length;
fila[tail] = elemento;
}
this.elementos++;
}
public String toString() {
return Arrays.toString(fila);
}
}