public class Stack {
private static String topo;
public Stack(int capacity) {
topo = null;
}
public static void main(String[] args) {
Stack s = new Stack(5);
String x;
String[] names = {"alton", "bob", "cocotea", "dennis", "effy"};
for(int i = 0; i < names.length; i++){
s.push(s, names[i]);
}
System.out.println(s.peek(s));
}
private static void push(Stack s, String x) {
s.topo = s.topo + 1;
s.topo = x;
}
private static boolean stackEmpty(Stack s){
if(s.topo == null){
return true;
}else{
return false;
}
}
private static String peek(Stack s){
if(stackEmpty(s)){
return null;
}else{
return s.topo;
}
}
}
Pilha em Java
3 Respostas
Cara, essa sua pilha não funciona não.
No instante em que você adiciona um item novo, perde a referência do antigo. veja seu método: private static void push(Stack s, String x){
s.topo = s.topo + 1;
s.topo = x;
}Primeiro você concatena 1 como valor antigo, e depois substitui o valor antigo pelo novo. Ficou meio esquisito isso aí 
A ideia é você implementar a pilha em cima de um array, ou de uma lista ligada, mas nunca pode jogar fora os itens anteriores da pilha, senão a estrutura não serve pra nada 
Eita! Vish, tô mal, nem percebi isso
vou fazer em cima de uma lista ligada então! Daqui a pouco eu corrigi o código pra tu verificar se tem erro, blz? Abraços!
Sem problemas
só uma dica, implemente o método pop também… aí rode uns testes pra ter certeza de que tudo funciona 