import javax.swing.JOptionPane;
public class Principal {
/**
* @By: Robson Barreto
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String elemento[]= new String [10];
String resultado ="";
int op;
do{
op=Integer.parseInt(JOptionPane.showInputDialog("Escola uma opção"+"\n1-Empilhar"+"\n2-Desempilhar"+"\n0-Sair"));
switch(op){
case 1:
for(int i=0;i<10;i++){
elemento[i]=JOptionPane.showInputDialog("Digite o elemento"+" "+(i+1));
if(elemento[i].isEmpty()){
JOptionPane.showMessageDialog(null,"Elemento não pode ser nulo!");
System.exit(0);
}
}
for(int i=0;i<10;i++){
resultado=resultado+((i+1)+" "+elemento[i])+"\n";
JOptionPane.showMessageDialog(null,"Sua pilha está assim: "+"\n"+resultado);
}
break;
case 2:
for(int i=10-1;i>=0;i--){
resultado="";
resultado=resultado+((i+1)+" "+elemento[i])+"\n";
JOptionPane.showMessageDialog(null,"Removendo elemento: "+"\n"+resultado);
}
break;
default:
JOptionPane.showMessageDialog(null,"Opção invalida");
break;
case 0:
JOptionPane.showMessageDialog(null,"Finalizando programa...");
}
}while(op!=0);
}
}
Pilhas: Meu código se encaixa nesse conceito?
1 Resposta
Para entender o conceito de pilhas basta entender como vc empilha coisas como livros por exemplo. Vc coloca um, dpois outro e dpois outro... Passado algum tempo se vc quiser tirar um livro da pilha vc precisa tirar o ultimo, dpois o penultimo e assim vai. O primeiro elemento passa a ser o ultimo a ser retirado da pilha.
Vc está programando em java portanto use e abuse de orientação a objetos. Crie uma classe pilha e inclua métodos nela. Não faça tdo no main isso torna seu programa um pouco ilegível (algumas pessoas vêm POO como coisa do demônio). Se vc tivesse fazendo em c ou pascal por exemplo iria falar pra vc criar as funções.
Aqui vai um esboço de como deve ficar sua classe:
public class Pilha{
private String str = new String[10];
private int indiceAtual;
/*Retorna true se a pilha estiver vazia e false se tiver pelo menos um elemento*/
public boolean isEmpty(){
}
/**Desempilha, retorna o último elemento da pilha*/
public String pop(){
}
/**Empilha/adiciona um elemento na pilha*/
public void push(String elemento){
}
}
Ai você pode criar uma outra classe chamada principal q usa um objeto da classe Pilha (ou pode incluir um método main na classe Pilha). Ficaria assim:
public class Principal{
public static void main (String args[]){
Pilha pilha = new Pilha();
pilha.push("Primeiro elemento");
pilha.push("Segundo");
System.out.println(pilha.pop());
}
}
Fazendo desta forma você pode melhorar o código para passar um integer para o construtor criar um vetor com x possições.
Não tenho como compilar o código aqui por isso lhe mandei apenas um esboço. Se vc digitar no google "estruturas de dados pilhas" vc encontrará um monte de implementações a maioria delas em c mas também encontrará algumas em java.