-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPilha.java
More file actions
92 lines (80 loc) · 2.36 KB
/
Copy pathPilha.java
File metadata and controls
92 lines (80 loc) · 2.36 KB
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
83
84
85
86
87
88
89
90
91
92
/*
* Disciplina Programação Orientada a Objetos
* Autores Luís Tendai RA 204585
* João Victor Tiodoro RA
* Mateus Alves RA 201980
* Atividade Final 3EC
* Data 13/06/2024
*/
import java.util.LinkedList;
public class Pilha extends EstrategiaLIFO {
private LinkedList<Senha> pilha;
private TipoLista tipoLista;
private Senha senhaChamada;
private int vezesChamada;
public Pilha(TipoLista tipoLista) {
this.tipoLista = tipoLista;
this.pilha = new LinkedList<>();
this.senhaChamada = null;
this.vezesChamada = 0;
}
public TipoLista getTipoLista() {
return tipoLista;
}
public boolean isEmpty() {
return pilha.isEmpty();
}
public int getVezesChamada() {
return vezesChamada;
}
public void incrementarVezesChamada() {
vezesChamada++;
}
@Override
public String inserir() {
Senha senha = new Senha();
senha.gerarSenha();
pilha.push(senha);
return "Senha " + senha.retornarSenha() + " (" + tipoLista + ") inserida com sucesso!";
}
@Override
public void remover() {
if (!pilha.isEmpty()) {
pilha.pop();
}
}
@Override
public String chamar() {
if (senhaChamada != null) {
return "Já existe uma senha chamada que precisa ser atendida.";
}
if (!pilha.isEmpty()) {
senhaChamada = pilha.pop();
return "Senha chamada: " + tipoLista + "-" + senhaChamada.retornarSenha() + "*";
} else {
return "A pilha está vazia.";
}
}
@Override
public String atender() {
if (senhaChamada != null) {
String resultado = "Senha " + senhaChamada.retornarSenha() + " (" + tipoLista + ") foi atendida.";
senhaChamada = null;
return resultado;
} else {
return "Nenhuma senha chamada para ser atendida.";
}
}
@Override
public String listar() {
if (pilha.isEmpty()) {
return null;
} else {
StringBuilder lista = new StringBuilder();
for (Senha senha : pilha) {
lista.append(senha.retornarSenha()).append("\n");
}
return lista.toString();
}
}
}