Pilha Dinâmica Orientada a Objetos com Java
Publicado por Perfil removido (última atualização em 08/06/2010)
[ Hits: 18.348 ]
Mais uma de estrutura de dados. Pilha dinâmica orientada a objetos implementada em Java no Eclipse. Possui os métodos empilhar, desempilhar e listar, além de uma classe para tratamento de exceções de pilha vazia com herança na classe NullPointerException. Nessa não implementei a busca, mas pode ser feito facilmente observando o método listar do algoritmo.
Novamente, só importar no Eclipse ou NetBeans, ou copiar do texto, criando cada uma das classes.
Obs.: Tanto a lista duplamente encadeada que enviei anteriormente quanto a pilha dinâmica podem ser facilmente modificadas, como por exemplo, para receber classes no lugar de uma String.
//Classe Nodo public class Nodo { private String valor; private Nodo anterior; //Define nó anterior public void setAnterior(Nodo anterior) { this.anterior = anterior; } //Retorna nó anterior. public Nodo getAnterior() { return anterior; } //Define valor do nó public void setValor(String valor) { this.valor = valor; } //Retorna valor do nó public String getValor() { return valor; } } //Classe Pilha import java.util.ArrayList; public class Pilha { //Variavel para definição do topo da pilha. Nodo topo = null; //Método que empilha valores. public void Empilha(String valor){ Nodo novo = new Nodo(); novo.setValor(valor); novo.setAnterior(topo); topo = novo; } //Método para desempilhar valores public String Desempilha() throws EmptyStackException{ if(topo == null){ throw new EmptyStackException("A pilha está vazia"); } else{ String valor = topo.getValor(); topo = topo.getAnterior(); return valor; } } //Método para listar pilha. Percorre os nós da pilha atribuindo seus valores em um ArrayList public ArrayList<String> Listar() throws EmptyStackException{ if(topo == null){ throw new EmptyStackException("A pilha está vazia"); } else{ ArrayList<String> listar = new ArrayList<String>(); Nodo aux = topo; while(aux != null){ listar.add(aux.getValor()); aux = aux.getAnterior(); } return listar; } } } //Classe EmptyStackException public class EmptyStackException extends NullPointerException{ public EmptyStackException(){ super(); } public EmptyStackException(String msg){ super(msg); } } //Classe Testa Pilha import java.util.ArrayList; import java.util.Scanner; public class TestaPilha { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Pilha pilha = new Pilha(); String valor, resp; do{ System.out.println("Escolha uma opção:\n1->Empilhar\n2->Desempilhar\n3->Listar"); resp = sc.next(); //Empilha um valor. if(resp.equals("1")){ System.out.println("Digite o valor:"); valor = sc.next(); pilha.Empilha(valor); } //Desempilha um valor. else if(resp.equals("2")){ try{ System.out.println("Desempilhado valor " + pilha.Desempilha()); } catch(EmptyStackException e){ System.out.println(e.getMessage()); } } //Lista os valore na pilha. else if(resp.equals("3")){ ArrayList<String> listar = new ArrayList<String>(); try{ listar = pilha.Listar(); } catch(EmptyStackException e){ System.out.println(e.getMessage()); } for(String vl : listar){ System.out.println(vl); } } else System.out.println("Opção inválida!"); } while(resp !="9"); } }
Conversor de bases decente não essas bostas que tem nesse site.
Nenhum comentário foi encontrado.
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Não consigo instalar o WineHQ no meu notebook vaio FE15 (Debian) (7)