Repository navigation
Expand file tree
/
Copy pathLifo.java
More file actions
50 lines (35 loc) · 1.72 KB
/
Copy pathLifo.java
File metadata and controls
50 lines (35 loc) · 1.72 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
package Listas;
public class Lifo {
private int[] dados;// Vetor que armazenará os elementos da pilha
private int topo;// Variável que controla o topo da pilha Quando vale -1 significa que está vazia
public Lifo(int tamanho) { // Recebe como parâmetro o tamanho da pilha
dados = new int[tamanho];// Cria o vetor com o tamanho informado pelo usuário
topo = -1; // Inicializa o topo como -1 (pilha vazia)
}
public boolean inserir(int valor) {
if (topo == dados.length - 1) // Verifica se a pilha está cheia Se topo for igual ao último índice do vetor
return false;
topo++; // Incrementa o topo (sobe uma posição)
dados[topo] = valor;// Armazena o valor na posição do topo
return true;
}
public int removerTopo() { // Método para remover elemento do topo
if (topo == -1) // Verifica se a pilha está vazia
return -999; // Código de erro
int valor = dados[topo]; // Guarda o valor que será removido
topo--;// Decrementa o topo (remove logicamente o elemento)
return valor;
}
public void mostrar() {
for (int i = topo; i >= 0; i--) // Percorre do topo até o início
System.out.println(dados[i]); // Mostra cada elemento
}
public int vagas() { // Método que retorna quantidade de vagas disponíveis
return dados.length - (topo + 1);// Total de posições menos quantidade ocupada
}
public int cabeca() { // Método que retorna o elemento do topo sem remover
if (topo == -1)// Verifica se está vazia
return -999;
return dados[topo];
}
}